8

我将我的 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

但是,在产品中,它被映射到:

http://localhost/diva/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg

注意缺少 web 目录。

CSS 文件中生成的代码应该是这样,我所有的 CSS(开发“块”和最终的产品资产转储)都位于web/css/. 关于为什么 prod 环境跳过 web 目录的任何想法?

编辑:奇怪的是 dev 和 prod 在 CSS 本身中生成相同的 URL:

url('../../bundles/majorproductionssewingdivasite/images/diva-sprites.jpg')

4

4 回答 4

20

解决方案是将资产转储到 prod 环境中:

$ app/console assetic:dump --env=prod
于 2012-12-28T17:50:15.110 回答
9

记得清除缓存

php app/console cache:clear --env=prod --no-debug

贝罗雷

php app/console assetic:dump --env=prod --no-debug
于 2013-09-13T15:28:16.360 回答
2

还要记住在您的 config_prod.yml 设置中适当地配置资产,如下所示:

assetic:
    use_controller: false

编辑:正如Symfony 文档中所说(实际上在章节中指的是开发环境):告诉 Symfony 停止尝试动态处理这些文件

于 2017-10-02T08:54:03.690 回答
0

在调试模式下,Assetic 1.1 似乎也重写了 CSS,即使它不在 {% stylesheets %} 标记中。因此,当您在生产中关闭调试时,值得检查一下。

于 2013-01-15T05:28:07.283 回答