在application.rb
中,有以下内容:
# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
我已将此增加到1.1,但是当我重新加载我的页面时,旧的js仍然被加载。我查看了源代码,希望找到一个附加到js和css文件的GET版本参数,但是没有这样的东西。
<link href="/assets/application.css" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application.js" type="text/javascript"></script>
是什么迫使浏览器清除其缓存?
答案 0 :(得分:3)
只有在为资产创建md5指纹时才会考虑版本号。
答案 1 :(得分:2)
集:
config.assets.digest = true
在production.rb中。然后使用以下方法预编译样式表:
rake assets:precompile
您会看到指纹已添加到实际文件名中,如下所示:
styles-5b4f282be3720d5b1e40d9e343dfc60a.css
只要编辑样式表(或其他资源),就会更改此指纹。更改的文件名强制浏览器清除它的缓存。
答案 2 :(得分:1)
您必须使用资产管道。然后使用asset_path,javascript_include_tag等包含资产。您的get没有Md5指纹,因此您的资产管道未启用,或者您没有正确链接到您的js。