在使用Alexandre Salomé的[尽管如此出色]"Sass,Compass,and Assetic in 10 minutes"时遇到了很多麻烦,我终于获得了Compass Assetic过滤器,可以将我的SCSS文件转换为项目/web目录中的CSS文件。我甚至认为我已经有了compass image-url()函数来引用图像
不幸的是,我不知道如何将图像保存在我的捆绑包中,并在需要时让Assetic将其正确复制或重写到/web目录中。他们就是不去那里。目前(…似乎这可能是预期的功能?)我只是将它们复制到/web/images目录中。这不可能是对的。。。正确的
这不是assetic可以也应该做的事情,而是Symfony可以做的事情。
首先,您应该将资产放置在捆绑包结构中的正确位置。这些应该放在Resources/public
目录中。这里是样式表、脚本、图像和所有其他公共事物的所在地。有关捆绑包结构的更多信息,请阅读文档:"如何使用构建捆绑包的最佳实践"
FrameworkBundle附带了一个名为assets:install
的usefull命令,它将把所有bundle中的所有资产安装到web/bundles/<bundle_name>
目录中。每次使用composer update
或composer install
命令时都会运行此命令。当您更新捆绑包中的一些资产时,您可以运行此命令将所有内容复制到web目录:
$ php app/console assets:install
有时,您不希望每次更新某些内容时都运行此命令。例如,如果您开始设置页面样式,则需要每分钟运行一次该命令。如果服务器支持使用符号链接,则可以使用--symlink
选项。这样,您就不需要每次都运行该命令。