Php 当内容发生变化时,如何使用Symfony2在生产中强制css缓存

Php 当内容发生变化时,如何使用Symfony2在生产中强制css缓存,php,css,symfony,caching,Php,Css,Symfony,Caching,在生产环境中,缩小css(php应用程序/控制台assetic:dump)时,会重新创建文件,但名称不会更改 因此,用户浏览器缓存旧版本。一种解决方法是在css名称后添加一个参数,如?v=12,以强制缓存,但还有其他解决方案吗?Symfony如何生成css文件名?用md5命名该文件可以解决问题,因为当文件更改时,其名称也会更改 {% stylesheets filter='cssrewrite,?yui_css' 'bundles/app/css/style.css' %

在生产环境中,缩小css(php应用程序/控制台assetic:dump)时,会重新创建文件,但名称不会更改

因此,用户浏览器缓存旧版本。一种解决方法是在css名称后添加一个参数,如?v=12,以强制缓存,但还有其他解决方案吗?Symfony如何生成css文件名?用md5命名该文件可以解决问题,因为当文件更改时,其名称也会更改

{% stylesheets filter='cssrewrite,?yui_css'
        'bundles/app/css/style.css'
    %}
        <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
    {% endstylesheets %}
{%stylesheets filter='cssrewite',yui\u css'
'bundles/app/css/style.css'
%}
{%endstylesheets%}
在我的源代码中,更改css后,文件名仍然是相同的事件:

<link rel="stylesheet" type="text/css" media="screen" href="/css/b3ba425.css" />

不幸的是,似乎没有比添加版本号更好的方法来强制用户缓存刷新。但是,这可能会以一种很好的方式实现自动化:

有提供
assets\u version:increment
task的软件包,因此拥有这个软件包,您需要做的就是:

添加您的config.yml

framework:
    templating:
        assets_version: %assets_version%
然后在parameters.yml.dist/parameters.yml中:

parameters:
    assets_version: v1
任务
assets\u version:increment
将为您增加
v1

我还建议将此命令添加到
composer
post-install
post-update
脚本中