想要瀏覽器緩存資源(JavaScript,CSS,圖像等),直到有新版本可用,然後確保瀏覽器提取並緩存新版本,這是很常見的。它是瀏覽器緩存中用作鍵的文件名或整個URL?
一種解決方案是在資源的文件名中嵌入一個版本號,但是將這樣管理的資源放在一個帶修訂號的目錄中是否做同樣的事情?文件的整個URL是用作瀏覽器緩存中的密鑰還是僅僅是文件名本身和一些元數據?
如果從獲取/r20/example.js
到/r21/example.js
我的代碼的變化,我可以肯定的是修訂example.js
20被緩存,但現在修訂21已經不是獲取它,這就是緩存?
ThinkVitamin.com的文章是錯誤的。 Safari和Opera **可以像使用任何網址一樣緩存具有查詢字符串的網址。 ([見我的答案](http://stackoverflow.com/questions/83990/is-it-the-filename-or-the-whole-url-used-as-a-key-in-browser-caches/85386 #85386)以獲取更多信息) – 2011-03-19 22:32:28
除了瀏覽器之外,一些流行的代理還需要更改文件名以打破緩存。 http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/在這篇文章中提到了Squid代理服務器(它確實改變了它在2.7版中的默認設置)我想更寧可玩它安全並更改文件名。 – scunliffe 2011-03-20 00:19:58