2012-02-25 59 views
3

application.rb,有以下几点:Rails如何过期资产?

# 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> 

什么强制浏览器清除其缓存?

回答

3
+0

感谢您的支持。我认为临时服务器面临的不是使用md5'在生产环境中,Rails使用上面概述的指纹识别方案。 ' – 2012-02-25 05:34:04

+0

而且我也有一些选项可以排除故障。调试,编译,压缩,服务,local_request,哦,我的! – 2012-02-25 05:43:18

1

您必须使用资产的管道。然后使用asset_path,javascript_include_tag等包含资产。您的get没有Md5指纹,因此您的资产管道未启用,或者您没有正确链接到您的js。

+0

我正在使用rails助手..我最好弄清楚我的md5去哪了! – 2012-02-25 05:21:31

+1

尝试添加:config.assets.digest = true – Forrest 2012-02-25 05:34:05

2

集:

config.assets.digest = true 

在production.rb。然后,当你使用预编译样式表:

rake assets:precompile 

你会看到指纹已被添加到实际文件名,如:

styles-5b4f282be3720d5b1e40d9e343dfc60a.css 

这个指纹是改变每当样式表(或其他资产)被编辑。更改后的文件名会强制浏览器清除缓存。