现在是时候在我的应用程序中从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
选项,没有其他文件使用相同的图像网址...
发生了什么事?
答案 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 %}