2013-10-13 40 views
0

但是,當我不緩存HTML文件(包括那些img標籤)時,我使用HTTP頭「緩存控制」緩存我們生成的圖像)使用「no-cache」我看到發送到服務器的更多請求(當我添加,刪除和重新添加這些標記時)。緩存HTML文件會生成緩存的圖像(並且不再有任何請求)。
唯一能找到的類似案例是this
任何線索/鏈接將不勝感激。當html沒有被緩存時,瀏覽器不緩存圖像,儘管緩存標題爲

瀏覽器:版本32.0.1661.0金絲雀靈氣
p.s.我非常希望保持HTML文件不被緩存。

+0

如果您檢入Web服務器日誌,它是否發送了一個304狀態碼,即「未修改」?如果是這樣,服務器將不會重新發送圖像。 –

+0

我得到狀態代碼:200 OK(每次) – shex

+0

對於Chrome,'200 OK'並不一定表示請求曾經離開客戶端。在很多情況下,響應是對緩存版本的重新傳輸,並且永遠不會訪問服務器。狀態將是'200',這是有道理的,但狀態消息將是'好'(而不是'緩存'),這使我在某個時候發狂。我在這些響應和實際響應之間唯一的區別是:缺少一個Connection頭(否則幾乎總是存在)和一個Date請求頭之前發送一個值。你的請求是否真的打到了服務器? –

回答

2

Eugene Olshenbaum answered on twitter:「關閉開發者工具,當它打開時,chrome忽略標題:))」 當開發工具打開時,緩存被「禁用」。不知道爲什麼如果HTML文件被緩存,我沒有看到任何對服務器的調用。

+0

這個。即使「禁用緩存」未勾選,我沒有看到任何資源從「緩存」加載,並且TTFB很高。關閉開發工具檢查器,然後導致圖像從緩存立即加載。似乎緩存控制標頭被忽略。 –