我有一個緩存問題。 Chrome瀏覽器並不總是加載較新版本的網站資產,大多數情況下是由Require.js加載的JavaScript文件。現在我已經有一個特定的文件超過24小時這個問題。爲什麼chrome不請求更新版本的緩存文件?
如果我打開devtools(網絡標籤)打開的頁面,違規文件通常顯示HTTP 200響應,但在「大小」列中顯示「(來自緩存)」。在標題詳細信息中顯示「臨時標題顯示」。 Wireshark顯示文件確實沒有從服務器請求。
Chrome顯示文件的最後修改日期爲星期六,2014年12月6日01:27:55 GMT,但我對服務器的下面的原始請求清楚地表明該文件最近發生了更改。
如果我做了原始的請求我自己,我沒有看到服務器返回的頭什麼,應該引起這個問題:
GET /js/path/to/file.js HTTP/1.1
Host: static.mydomain.com
User-Agent: Matt
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Content-Type: application/javascript
Accept-Ranges: bytes
ETag: "4203477418"
Last-Modified: Fri, 16 Jan 2015 18:28:30 GMT
Content-Length: 5704
Date: Fri, 16 Jan 2015 21:05:06 GMT
Server: lighttpd/1.4.33
.... data here ...
問題已報道與不同的多個操作系統Chrome用戶Chrome的版本,但我通常不會收到有關其他瀏覽器緩存問題的報告。 (現在我的 「的Mozilla/5.0(X11;的Linux x86_64的)爲AppleWebKit/537.36(KHTML,例如Gecko)Chrome瀏覽器/ Safari瀏覽器39.0.2171.71/537.36」)
編輯: 這個問題似乎是最反感與由Require.js加載的文件,雖然我已經遇到它與JavaScript中直接引用的JavaScript以及。
我在這裏錯過了什麼?爲什麼不會檢查文件的新版本?