2010-11-24 64 views
1

嗨,我有一個小問題新版本上傳到服務器後,css文件緩存點被清除

我上傳了一個新版本的我的網站。 和一些用戶抱怨說,他們看到我改變了一些非常非常錯誤的頁面。

無論如何,刷新後他們看到它很好。

我認爲它是因爲我的CSS文件中得到了由他們在一個較早的時間緩存... 爲什麼心不是瀏覽器下載第一次加載由自己的CSS文件?..

他應該知道的CSS文件改變dosnt他?

在此先感謝

回答

5

@ UpTheCreek的方法將正常工作。但是,只需更改呼叫而不更改文件名即可節省一些麻煩。

screen.css?v=12 

這也將強制重新加載,但只會要求您更改呼叫。

+0

是的,這是一個更好的解決方案... – UpTheCreek 2010-11-24 09:42:04

+1

我真的很喜歡這個解決方案 - 它的巧妙 – 2010-11-24 11:10:01

1

他應該知道css文件已更改 dosnt他?

不一定。如果你的css文件已經從max-age指令和/或將來到期日期的服務器發送過來,則指示瀏覽器不對你的資源發出有條件的請求(見http://developer.yahoo.com/blogs/ydn/posts/2007/05/high_performanc_2/),以便他們認爲緩存中的資源仍然有效。

在這種情況下,以迫使一個新的請求,您可能需要如果您安裝了Web開發人員工具欄重命名文件或追加隨機查詢字符串像file.css?848372034,或者甚至更好,一個版本註釋像file.css?v=1

+0

偉大的思想...;) – Damien 2010-11-24 09:40:32

0

(對於Firefox或IE),您可以禁用緩存。我在開發網站時使用這個。這樣可以節省您每次進行輕微編輯時重命名CSS的次數。

0

如果你在Apache嘗試在你的根的.htaccess添加此:

<FilesMatch ".(css|jpg|gif|ico|jpeg|png|html)$"> 
ExpiresActive On 
Header set Expires "Mon, 22 Nov 2010 06:00:00 GMT" 
</FilesMatch> [L] 

只包含文件,你不想緩存類型,例如:

<FilesMatch ".(css|js)$"> 

如果你知道什麼時候你想更改文件,設置未來的日期 - 如果這些文件沒有定期刷新,你的網站會更快。

如果您沒有設置到期日期,瀏覽器會按照它們的年齡比例緩存這些文件。

相關問題