0

我确信我网站上的某些图像没有正确缓存。我已经尽我所能设置了标题,但每次我点击刷新按钮时,它们似乎仍然会再次下载。

例如,特定图像的下载时间总是超过 1 秒。即使在它应该被缓存之后也是如此。以下是响应标头:

HTTP/1.1 200 OK
Date: Sun, 06 Mar 2011 12:51:52 GMT
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.16
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
Accept-Ranges: bytes
Content-Length: 19211
Cache-Control: max-age=630323456, public
Expires: Wed, 03 Mar 2021 12:51:52 GMT
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Content-Type: image/png

这有什么问题吗?谢谢。

更新

<FilesMatch "\.(htm|html|php)$">
    Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"  
</FilesMatch>
4

1 回答 1

1

你的 Last-Modified 是 1970 年,你的最大年龄是 630323456 秒(19 岁)。因此,该文件自 1989 年以来已“过期”,必须重新下载。浏览器正在做它应该做的事情。

解决方案:

  1. 将 Last-Modified 更改为真正的Last-Modified(可能在过去几年的某个时间)

  2. 将最大年龄更改为

  3. 删除 Expires 标头;当你也有 max-age 时,它​​会被覆盖。请参阅 RFC2616 第 14.9.3 节。或者,删除 Cache-Control 标头并仅保留 Expires 标头。任何一个都可以,但只能使用一个,而不是两个都用。

于 2011-04-20T22:35:46.877 回答