2012-02-25 60 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 

這個指紋是改變每當樣式表(或其他資產)被編輯。更改後的文件名會強制瀏覽器清除緩存。