2015-09-04 52 views
2

在生产中,缩小css(php app/console assetic:dump)时,会重新创建该文件,但名称不会更改。如何在Symfony2内容更改时强制生产css缓存

因此用户浏览器保持缓存旧版本。解决方法是在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" /> 

回答

0

遗憾的是,似乎没有更好的办法来迫使用户的缓存比增加版本号进行刷新。然而,这可能会在很好的方式实现自动化:

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值。

我也建议这个命令添加到您的composerpost installpost update脚本