2011-01-27 72 views
3

我很感興趣人們如何處理更新圖像/ css/js關於瀏覽器緩存。更新緩存的圖像/ css/js不用重命名

使用mod_expires和將來到期等等顯然是好的 - 但如果您不想一直重命名文件,那麼如何更新這些文件呢?

有沒有人有任何酷的技巧與版本號,這將不會冒險的瀏覽器(或代理)不想緩存文件,但仍然會保證用戶將看到新版本,如果它更新?

回答

0

這樣做的一般方法是生成一個隨機數並將其添加爲GET/POST變量。例如:如果你不改變默認的緩存規則

http://example.com/myfile.html?r=189818273

只是我的兩分錢....

+1

這會停止緩存,但每次都會有所不同。我希望它被緩存 - 我只是想要更新它的能力。 – 2011-01-27 14:53:59

0

所有這些資源將被更新。您可以使用FireBUG進行測試。如果資源沒有被修改,它將返回304,如果修改它將返回200。因此,如果您在頁面上有圖片,默認情況下會在每個請求中檢查。

+1

雖然您不能依賴修改過的檢查 - 瀏覽器可能會決定不檢查,因爲expires標題是將來的。 – 2011-01-27 14:54:23

0

我想補充一個查詢字符串參數與上次修改文件的時間戳:

http://example.com/script.js?v=123456

或者,你可以在你的應用程序定義一個全局變量,並使用它作爲時間戳。當您更改其中一個文件時,只需增加該變量即可。這意味着您的所有資源將同時失效,但這可能比讀取文件的時間戳更簡單。