我們發現Firefox(至少v3)和Safari無法正確緩存從css文件引用的圖像。圖像被緩存,但不會刷新,即使您在服務器上更改它們。一旦Firefox在緩存中有圖像,它將永遠不會檢查它是否已經改變。Firefox或Safari不會重新加載樣式表圖像
我們的CSS文件是這樣的:
div#news {
background: #FFFFFF url(images/newsitem_background.jpg) no-repeat;
...
}
的問題是,如果我們現在改變newsitem_background.jpg圖像,所有的Firefox用戶將仍然使用舊的圖像,除非他們明確地刷新頁面。另一方面,IE會檢測到圖像已更改並自動重新加載。
這是一個已知的問題?任何解決方法?謝謝!
編輯:解決方案是不按F5。我可以做這個。但我們的客戶只會訪問我們的網站,並獲取舊的,過時的圖形。他們如何知道他們需要按F5?
我已經安裝了Firebug並確認了我已經懷疑的東西:Firefox甚至不嘗試從css文件中檢索引用的圖像,以確定它們是否已被更改。當你按下F5時,它會檢查所有圖像,並且網絡服務器很好地響應304,除了那些已更改,其響應200 OK。
那麼,有沒有辦法敦促火狐自動更新從css文件引用的圖像?當然,我不是唯一有這個問題的人?
EDIT2:我測試這個本地主機與和圖像響應不包含任何緩存的信息,它是:
Server Microsoft-IIS/5.1
X-Powered-By ASP.NET
Date Tue, 14 Oct 2008 11:01:27 GMT
Content-Type image/jpeg
Accept-Ranges bytes
Last-Modified Tue, 14 Oct 2008 11:00:43 GMT
Etag "7ab3aa1aec2dc91:9f4"
Content-Length 61196
EDIT3:我已經做了一些更多的閱讀,它看起來像它只是可以」因爲Firefox或大多數瀏覽器會假定圖像不會經常更改(過期頭和全部)。
我們已經走過了同樣的結論在這裏。我們需要向圖片網址添加一些字符串。 – mark 2010-01-14 11:00:34
使用ctrl + f5重新加載 – 2010-03-21 03:51:19