在生产中,当缩小 css (php app/console 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 %}
在我的源代码中,文件名在 css 更改后仍然是相同的事件:
<link rel="stylesheet" type="text/css" media="screen" href="/css/b3ba425.css" />
最佳答案
不幸的是,似乎没有比添加版本号更好的强制用户缓存刷新的方法了。然而,这可能会以一种很好的方式自动化:
有KachkaevAssetsVersionBundle它提供了 assets_version:increment
任务,所以有了这个包,您需要做的就是:
加入你的config.yml
framework:
templating:
assets_version: %assets_version%
然后在您的parameters.yml.dist/parameters.yml中:
parameters:
assets_version: v1
assets_version:increment
任务将为您增加 v1
值。
我还建议将此命令添加到您的composer
的post install
或post update
脚本
关于php - 如何在内容更改时使用 Symfony2 在生产中强制使用 css 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396525/