2010-01-12 154 views
5

我有一個相當麻煩的問題,我還沒有找到一個好的解決方案。防止瀏覽器緩存在Web應用程序升級

我允許通過瀏覽器緩存所有應用程序靜態文件(JS,CSS和圖像)以提高性能。

問題是,當我進行升級時,用戶仍然使用緩存中的舊版本,這往往會破壞應用程序,並且需要每次清理緩存以解決問題。

是否有任何好的多瀏覽器方法,仍然允許緩存文件,但可以強制在需要時重新加載它們?

感謝您的任何信息。

回答

7

附加somethign作爲參數,例如, myresource.css?version=1。該文件將被正確地加密,這是強制重新加載緩存的一個技巧。您只需要動態生成html頁面。

+0

+1。這就是.Net在使用嵌入式Web資源時所做的。 – David 2010-01-12 17:07:33

+0

這個問題似乎涵蓋了更多細節的主題:http://stackoverflow.com/questions/118884/what-is-an-elegant-way-to-force-browsers-to-reload-cached-css-js-文件 – ewernli 2010-01-12 17:10:23

+0

嗨。 感謝您的鏈接,它似乎給了一個非常透徹的解釋。 另外,爲了理解你自己的解釋,是否需要將版本參數永久保存在鏈接中,然後每次升級版本時都會增加(如在發佈的鏈接中)? 再次感謝。 – SyBer 2010-01-12 17:39:46

0

我聽說過要在用戶緩存的文件名中使用版本號,但我不能說與其他選項相比「好」。

0

選項我能想到的:

  • 減少緩存TTL
  • 存放在版本目錄樹中的緩存的東西,如:
    • /app/1.2/css/
    • /app/1.2/js/
相關問題