2012-03-03 43 views
2

在我的網站www.johnshammas.com上,它可以在所有瀏覽器中正常運行。除了...在Chrome瀏覽器上查看過以前版本的任何人都會停留在該版本上,直到他們清空緩存爲止。什麼會導致網站返回一個「未修改」的標題,但事實上它已被大量修改?Chrome緩存過長

+2

您應該查看與頁面一起發送的標題,並檢查它們是否不是問題的原因。如果您不明白標題的含義,請推薦您的問題以包含它們。 – 2012-03-03 23:27:15

回答

0

一些可能的解決方案是這樣的......

1號(永久)

否2(半永久性)

通過按Ctrl + Shift + N。但要小心,因爲這也 結束會話
  • 切換隱身模式。

3號(一次性)

  • CTRL + SHIFT +德爾>確認

4號(一次性)

  • F12開發工具>網絡選項卡>右鍵單擊內容區域> 清除瀏覽器緩存>確認。
1

如果返回一個304 Not Modified響應,這是因爲早期的服務器發送帶有ETagLast-Modified頭的響應。

之後,瀏覽器將此值作爲ETagIf-Modified-Since標題發送。服務器識別ETag或日期,以便自瀏覽器上次請求該資源以來該資源未發生變化。因此它返回了304

如果您不熟悉這些或其他緩存標頭,我建議對它們進行一些研究。關於這些是什麼以及如何使用它們,有很多很棒的教程。

0

問題是,Chrome需要在Cache-Control`頭中有must-revalidate以重新檢查文件以查看是否需要重新獲取它們。

推薦以下響應頭:

Cache-Control: must-validate 

這告訴Chrome中檢查與服務器,並查看是否有更新的文件。如果有新文件,它會在響應中收到它。如果沒有,它將收到304響應,並確保緩存中的最新信息。

如果您沒有設置此標題,那麼在沒有任何其他設置導致文件無效的情況下,Chrome將從未與服務器進行檢查以查看是否有更新的版本。

這是一個blog post,它進一步討論了這個問題。