使用Alexandre Salomé's [nonetheless excellent] "Sass, Compass, and Assetic in 10 minutes"经过大量麻烦后,我终于得到了Compass Assetic过滤器,将我的SCSS文件转换为项目/ web目录中的CSS文件。我甚至认为我已经有了指南针image-url()函数来引用应该存在的图像。
不幸的是,我不知道如何在我的包中保留图像,并且在需要时让Assetic正确地将它们复制或重写到/ web目录中。他们只是不去那里。暂时(...而且似乎这可能是预期的功能?)我只是将它们复制到/ web / images目录中。这不可能是正确的。 ......对吧?
答案 0 :(得分:4)
这不是资产可以而且应该做的事情,而是Symfony可以做的事情。
首先,您应该将资产放在捆绑结构中的正确位置。这些应放在Resources/public
目录中。这是样式表,脚本,图像和所有其他公共事物所在的地方。有关捆绑结构的更多信息,请阅读文档:"How to use Best Practices for Structuring Bundles"
FrameworkBundle带有一个名为assets:install
的有用命令,它将所有包中的所有资产安装到web/bundles/<bundle_name>
目录中。每次使用composer update
或composer install
命令时都会运行此命令。更新捆绑软件中的某些资产时,可以运行此命令将所有内容复制到Web目录:
$ php app/console assets:install
有时,您不希望每次更新某些内容时都运行此命令。例如,如果您开始设置页面样式,则需要每分钟运行一次该命令。如果服务器支持使用符号链接,则可以使用--symlink
选项。这样,您不需要每次都运行该命令。