好多服務(wù)器端或CDN都會對CSS、JS和圖片這些靜態(tài)的內(nèi)容設(shè)置緩存,到了IE這里又會在本地做一個緩存。所以當(dāng)我們更新了CSS文件之后,常常會出現(xiàn)客戶端沒有更新,導(dǎo)致顯示出現(xiàn)問題。之前我一直使用時間戳參數(shù)的方法來解決:
每次更改了css文件就把參數(shù)time的值設(shè)為更改當(dāng)日的日期,這樣本地IE就會把它當(dāng)作一個新的文件更新一次。
但是在最近做的項目中發(fā)現(xiàn)一個比較奇怪的問題,服務(wù)器端做了gzip壓縮,到客戶端第一次解壓的時候沒問題,第二次訪問的時候ie從cache里讀文件就出問題了,只能讀出前面大約一兩千個字節(jié)。在兩臺win2000+ie6的機子上重現(xiàn)了這個問題,XP的還沒有發(fā)現(xiàn)。
最終的解決方案是在時間戳參數(shù)后面再加上一個.css結(jié)尾,也就是這么寫:
然后就一切正常了…
大概IE在從緩存里讀文件的時候還得對文件擴展名做一個判斷,所以這么加一下它就認(rèn)了。
當(dāng)然js也可以用這種方法
出處:http://www.iamued.com/qianduan/1629.html