我使用以下代码包含我的CSS:
{% stylesheets 'bundles/majorproductionssewingdivasite/css/*.css' filter='cssrewrite' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
在开发中,这允许我使用图像精灵而没有任何问题。我的精灵的结果URL是:
http://localhost/diva/web/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg
但是,在prod中,它被映射到:
http://localhost/diva/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg
请注意缺少网络目录。
CSS文件中生成的代码应该是这样,并且我的所有CSS(dev'unk'和最终的prod资产转储)都在web/css/
。关于为什么prod环境正在跳过web目录的任何想法?
url('../../bundles/majorproductionssewingdivasite/images/diva-sprites.jpg')
答案 0 :(得分:20)
解决方案是将资产转储到prod环境中:
$ app/console assetic:dump --env=prod
答案 1 :(得分:9)
请记住清除缓存
php app/console cache:clear --env=prod --no-debug
berore
php app/console assetic:dump --env=prod --no-debug
答案 2 :(得分:1)
还记得在config_prod.yml中设置如下所示的适当配置assetic:
assetic:
use_controller: false
编辑: 如Symfony docs中所述(实际上在章节中指的是开发环境):告诉Symfony停止尝试动态处理这些文件
答案 3 :(得分:0)
在调试模式下,即使不在{%stylesheets%}标记中,Assetic 1.1似乎也会重写CSS。所以当你在生产中关闭调试时,有必要检查一下。