Symfony2在prod中转储的资产有不同的代码

时间:2016-03-18 12:27:22

标签: php css symfony assets

现在是时候在我的应用程序中从dev切换到prod了,我正在尝试修复css文件等中所有已损坏的链接。现在我被困在一个部分..

所以我有一个名为optimized.less的文件。有这个:

#srchFld {background: url(../img/search.png) no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}

执行php app/console assets:install时。一切正常,文件就会生成。

之后,执行php app/console assetic:dump --env=prod --no-debug。为prod生成css文件。但是在文件中它生成了这个:

#srchFld {background: url(../../bundles/mpshop/img/search.png) no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}

现在我知道一个事实,即生成的链接是错误的..真正的问题是,它从其他地方生成链接URL。

例如:

如果我从公共css文件中删除网址:

#srchFld {background: url() no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}

当我转储它时仍会生成与以前完全相同的URL ...为什么?我手动删除所有缓存等。并使用phpstorm find in path选项,没有其他文件使用相同的图像网址...

发生了什么事?

1 个答案:

答案 0 :(得分:0)

我认为这是由于您在模板中组装资产的方式。 要使资产在css文件中正确构建您的网址,您需要使用symfony documentation

中所述的cssrewrite过滤器

示例:

{% stylesheets
    'bundles/mybundle/css/main.css'
    'bundles/mybundle/css/another.css'
    filter='cssrewrite'%}
    <link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}