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