2016-11-15 99 views
0

我已經設置Cache-Control = max-age = 315569520 &從現在開始過期至10年。瀏覽器沒有從緩存中讀取Amazon S3文件

仍瀏覽器正在從緩存中讀取文件&向S3發出GET請求。作爲響應304被接收,但是由於此,我的S3 GET計數正在增加。

請建議正確的方法來設置緩存文件S3

+0

'Expires'已被棄用和不必要的。嘗試沒有它...然後嘗試一個更合理的值爲'緩存控制:max-age = ...',如86400,只是爲了看看是否瀏覽器丟棄的價值,好像它太大,不能認爲正確。此外,提及瀏覽器和版本,以便其他人可以嘗試複製您所看到的行爲。 –

+0

邁克爾你的建議不起作用。我在最新的Chrome,Opera和Safari上試過這個。它在Firefox上完美運行。 Chrome和Cache中的Request header中的Cache-Control = 0是否與Safari中的No沒有關係? – Lajpat

+0

驗證這不是您的測試方法的人爲因素。瀏覽器的行爲是一個移動的目標,但[這個答案](http://stackoverflow.com/a/3934694/1695906)可能會提供一些洞察到瀏覽器何時可以發送緩存內容的If-Modified-Since請求(在瀏覽器會話期間第一次觸摸?重新加載?),以及何時不會。根據我的估計,從根本上說,這不是一個特定於S3的問題,而是瀏覽器行爲之一,並且從S3以外的服務器獲得相同的響應時,瀏覽器行爲也應該是相同的。 –

回答

0

當通過地址欄要求IMG的資源,鉻&歌劇院發送緩存控制= 0的請求頭& Safari瀏覽器發送緩存=否。由於此瀏覽器不會從緩存中拾取圖像。

Firefox不會發送這樣的頭文件。

但是,當經由IMG SRC標籤被請求相同的URL,所有瀏覽器尊重緩存控制&在他們的請求上述標題永遠不會發送