2010-12-15 67 views
2

我在开发一个网站上遇到了一些问题。一些图像正在被正确缓存并且它们的标题看起来正确(强etags,正确的最后修改)。但其他图片的etags较弱(以W /开头)和最后修改的标题总是等于当前时间。有谁知道我可以如何解决这个问题?我环顾四周,我似乎无法找到任何可行的方法。未被缓存的图像是背景图像,并且会导致每个页面重新加载时出现背景闪光,这很烦人。缓存,弱标签和最后修改的问题

页眉:

Accept-Ranges:bytes 
Connection:Keep-Alive 
Content-Length:6879 
Content-Type:image/jpeg 
Date:Wed, 15 Dec 2010 07:41:44 GMT 
Etag:W/"4e863ea-1adf-49772cd85b340" 
Keep-Alive:timeout=15, max=98 
Last-Modified:Wed, 15 Dec 2010 07:41:44 GMT 
Server:Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch 

预先感谢您的任何帮助。我不是这类东西的专家,所以我很抱歉如果我错过了一些明显的东西。

回答

1

如果你想确保你的图像缓存,你不能依靠验证头(last-modifiedetag)。为确保缓存,您需要使用ExpiresCache-control。验证仅在缓存过期机制说内容陈旧后才使用。如果您不使用ExpiresCache-control标题,内容新鲜度未定义,并且仅取决于浏览器的特定实现,因此在您的情况下它可能会出现意外情况。

0

我不确定发生了什么变化,但看起来问题已消失。

页眉:

Accept-Ranges:bytes 
Connection:Keep-Alive 
Content-Length:6879 
Content-Type:image/jpeg 
Date:Wed, 15 Dec 2010 16:46:14 GMT 
Etag:"4e863ea-1adf-49772cd85b340" 
Keep-Alive:timeout=15, max=99 
Last-Modified:Wed, 15 Dec 2010 13:20:37 GMT 
Server:Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch 
+1

这可能是由于您的etag从弱变强。 – 2013-03-27 00:58:24

+0

@JustinY,我现在有同样的问题。我的两个脚本之一加载要求强etag静态图片,另一个与弱etag。由于两个脚本几乎完全相同,我无法理解这种情况。你能帮助建议吗? – 2013-11-07 18:36:09

+0

对不起,问题解决了。 =)这是时区问题。 – 2013-11-07 18:42:10