2012-02-13 100 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!