Как предотвратить кэширование изображений в браузере?


Каков наилучший способ запретить браузеру кэшировать изображения в PHP?

Я пробовал метод заголовка (:

header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Но, похоже, ничего не работает, кроме ручной очистки кэша браузера.

У меня есть изображения, которые заменены на одно и то же имя, например avatar.png в качестве обновляемого аватара для пользователя, но когда он обновляется, браузер сохраняет старую версию.

Даже когда оригинал удален и добавлен новый, браузер все еще сохраняет старый аватар.png.

Есть какие-нибудь мысли?

Author: k_sel, 2012-01-06

4 answers

Просто поместите случайный параметр в конец URL-адреса изображения. Временная метка также может быть очень хорошо использована для этого.

Например, в PHP:

"http://domain.com/img.png?t=" . time();

Браузер всегда будет загружать это изображение новым. Однако вы должны использовать его с осторожностью, это замедлит загрузку.

 14
Author: js-coder, 2012-01-05 20:40:11

Как только вы вставляете свое собственное изображение, нет необходимости каждый раз предотвращать кэширование изображений. Вы можете просто использовать filemtime ($IMGPATH), чтобы проверить время последней смены изображения.

Например: 'http://example.com/img.jpg?last_picture_update ='. время файла($IMGPATH)

 5
Author: wIRELESS, 2013-10-21 08:39:50

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

Я обобщил некоторые общие решения проблемы "обновить изображение" здесь.

 2
Author: Doin, 2017-05-23 12:26:33

Спасибо, этот пробег для меня вот так

Не запускать

echo "&lt;img src='gambarLimas.jpg'><br>"; 

Хорошо бегать

echo "&lt;img src='gambarLimas.jpg?t=".time()."'><br>"; 
 -2
Author: Dody Irwin, 2016-11-28 20:41:05