Изображение не кэшируется? - PullRequest
0 голосов
/ 06 марта 2011

Я убежден, что некоторые изображения на моем сайте не кэшируются должным образом.Я установил заголовки как можно лучше, но все равно кажется, что они загружаются снова каждый раз, когда я нажимаю кнопку обновления.

Например, для загрузки определенного изображения всегда требуется чуть более 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>

1 Ответ

1 голос
/ 21 апреля 2011

Ваш последний измененный говорит 1970, и ваш максимальный возраст составляет 630323456 секунд (19 лет).Таким образом, файл был «истек» с 1989 года и должен быть повторно загружен.Браузер делает то, что должен делать.

Решение:

  1. Измените Last-Modified на real Last-Modified (возможно, некоторыевремя в последние несколько лет)

  2. Измените максимальный возраст на

  3. Удалите заголовок Expires;он отменяется, когда у вас также есть максимальный возраст. См. RFC2616, раздел 14.9.3 .Либо удалите заголовок Cache-Control и оставьте только заголовок Expires.Либо один подойдет, но используйте только один, а не оба.

...