Заголовки для вывода изображения PNG, чтобы убедиться, что оно кэшируется в браузере? - PullRequest
22 голосов
/ 06 сентября 2011

У меня есть изображения (PNG), которые генерируются динамически и будут встроены в веб-сайты и форумы.Когда изображение публикуется на очень загруженной странице, возникает множество подключений к сервису, что часто меняется.Я хочу сообщить браузеру, как долго его кэшировать.

Итак, какие заголовки мне нужны?В настоящее время у меня есть:

Cache-Control: max-age=86400
Content-Type: image/png

Кажется, что браузер не кэширует изображение (это около 20-30kb).Что еще было бы необходимо?

Редактировать: Это пример изображения, у меня уже есть URL с расширением .png: https://images.carspending.com/sigimg/5734/user/honda-accord-2-4i-executive-tourer_medium.png

Ответы [ 3 ]

32 голосов
/ 06 сентября 2011

Последнее, что сработало, было:

header('Pragma: public');
header('Cache-Control: max-age=86400');
header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));
header('Content-Type: image/png');

Теперь браузер не выполняет запросы на изображение при загрузке страницы с внедренной.

7 голосов
/ 06 сентября 2011

Убедитесь, что вы также добавили public как:

header('Cache-Control: max-age=86400, public');

Прочтите также , очень полезно.

2 голосов
/ 06 сентября 2011

Заголовок Expires должен помочь.

header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...