为什么我的文件没有从缓存中提供?

时间:2011-04-30 05:14:28

标签: http caching browser http-headers

我认为我为我的域正确配置了缓存,但仍然Fiddler和Firefox webdeveloper都显示每个请求都会加载所有图像,css和js。

这是我的一张图片的响应标题:

Server  nginx/0.8.36
Date    Sat, 30 Apr 2011 05:02:58 GMT
Content-Type    image/jpeg
Connction   keep-alive
Last-Modified   Fri, 08 Apr 2011 22:11:34 GMT
Etag    "16456ec39f6cb1:0"
X-Powered-By    ASP.NET
MicrosoftOfficeWebServer    5.0_Pub
MS-Author-Via   MS-FP/4.0
Content-Length  2885
Expires Tue, 24 Apr 2012 05:02:58 GMT
Cache-Control   max-age=31104000
X-Cache HIT
Accept-Ranges   bytes

所以,我有Expires头项,而Cache-Control有一个max-age值(应该是一年)。 如果您想知道:这些文件最初是从ASP.NET提供的,但它们之间有一个CDN,它添加了一些标题项。

我的错误在哪里???

请求就像“http://images.mydomain.com/filename.jpg”。没有附加唯一的查询字符串参数。

3 个答案:

答案 0 :(得分:0)

尝试添加

Cache-Control: public, max-age=31104000

您可以找到有关缓存控制here的更多信息 您可以找到更多信息here

答案 1 :(得分:0)

好吧,好像我似乎无法很好地使用Fiddler。 我下载了Chrome来测试我的网站,Chrome的开发者工具告诉我,我的文件来自缓存。 这就是我对上述标题的期望。

对我来说,一个悬而未决的问题仍然是Fiddler在缓存中显示请求的原因。也许我会将其作为一个单独的问题发布:)

答案 2 :(得分:-1)

将Expires日期设置为过去。