2012-02-13 104 views
2

我使用Firebug檢查了我的網站:每次重新加載頁面時,所有資源都會再次加載。 (我不是通過點擊瀏覽器中的「重新加載」,而是通過主頁上的鏈接導致主頁)瀏覽器不會緩存資源

只是舉一個例子:base.css每次我都會給出一個「200 ok」的狀態加載頁面。

The response header says: 
Cache-Control max-age=5184000, private 
Last-Modified 10 Feb 2012 20:00:00 GMT 

從我所讀到的所有內容來看,這應該足以讓瀏覽器緩存這個文件。

我在兩臺不同的機器上用兩個不同版本的Firefox檢查了這一點 - 但結果相同。

什麼是缺少讓瀏覽器緩存文件?

令人困惑的是,對於about:cache,我可以看到瀏覽器已經將base.css放入其磁盤緩存中,並且每次重新加載頁面時都會增加取數。螢火蟲在我身上玩惡作劇嗎?

+0

您可能需要發佈瀏覽器提供的示例URL。有時,框架將緩存解析器參數添加到URL以跳過緩存。 – dbrin 2012-02-14 06:13:47

+0

@DmitryB該網站是[www.yogasearch.de](http://www.yogasearch.de) – yogi 2012-02-14 10:45:02

回答

0

瑜珈,我附上了我在瀏覽器中看到的屏幕截圖(見下文或點擊此網址http://i.stack.imgur.com/eT0gU.png)。有一些緩存需要資源(比如widget76.css),但base.css沒有像你說的那樣被緩存。

有一對夫婦的事情,我觀察到:

  1. 基地CSS文件被標記的Cache-Control:私人。我知道它是代理服務器,但絕不會少。
  2. 基本CSS未明確包含在HTML標頭中,而是從另一個css文件導入(可能不相關)。
  3. widget76.css有一個「If-Modified-Since」頭文件http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,它允許有效的緩存策略。在圖像中沒有看到,但是這是請求頭有:

    如果-Modified-Since的:星期三,2012年2月1日十二時31分58秒GMT

    緩存控制:最大年齡= 0

因此,總而言之,我認爲這是缺少If-Modified-Since標題,使差異。

Firefox Net tab of CSS resources

0

回答我的問題inital是相當簡單: 在firebugs網絡分析的默認模式「BFCache答案」被啓用。其效果是對緩存的請求顯示在列表中,這給人的印象是它們來自服務器。

感謝您的幫助,DmitryB!