Есть ли способ заставить браузер обновлять / загружать изображения?

У меня есть проблема, когда пользователи сообщают, что их изображения не загружаются, а старые все еще есть. При ближайшем рассмотрении появляются новые изображения, они имеют то же имя, что и прежнее. Что я делаю при загрузке, так это то, что я переименовываю изображения для целей SEO. Когда они удаляют изображение, старый индекс становится доступным и используется повторно. Поэтому он имеет то же имя изображения.

Есть ли способ (я думал, может быть, может быть метатег для этого), чтобы сказать браузеру не использовать его cahce?

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

Добавить строку запроса с произвольным уникальным номером (или временем, или номером версии и т. Д.):

a cool image 

Это приведет к появлению нового запроса из-за другого URL-адреса.

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

  • Использование заголовка expires с датой в прошлом предотвращает кеширование. Плохо
  • Добавление параметра «перехват кеша» 342038402 может устранить проблему, но также может препятствовать кэшированию изображения, которое вам не подходит. Плохо.
  • Использование expires заголовок с коротким (скажем, 1 час) истекает лучше … через час пользователь увидит изображение, но ваш веб-сервер не будет обслуживать его каждый раз. Компромисс, но какое время работает? Не реально.

Решение? Я могу думать о двух хороших вариантах:

  • Изучите eTags и свою способность использовать их. Они предназначены для этой ситуации. Браузер явно спросит ваш сервер, обновлен ли файл или нет. Вы можете просто включить это в apache, если у вас нет этого.
  • Создайте новый URL для каждого нового изображения (и используйте заголовок с далеким будущим истечением). Это то, над чем вы работаете.

Вы можете поместить http-equiv в который укажет браузеру не использовать кеш (или даже лучше – использовать его определенным образом), но лучше настроить сервер для отправки правильных заголовков cache HTTP. Просмотрите статью о кешировании .

Тем не менее, некоторые браузеры могут не поддерживать весь стандарт http , но я считаю, что это путь.

Добавьте текущее время и время в изображение src:

 " /> 

вы можете управлять поведением кэша, играя с заголовками HTTP.

установка заголовка expires в прошлом заставит браузер не использовать кешированную версию.

 Expires: Sat, 26 Jul 1997 05:00:00 GMT 

Вы можете проконсультироваться с RFC, чтобы получить более подробную информацию.

Если вы посмотрите на данные, которые обмениваются между вашим браузером и сервером, вы увидите, что браузер отправит запрос HTTP HEAD для изображений. Результат будет содержать время модификации (но не фактические данные изображения). Убедитесь, что это время изменяется, если изображение изменяется на сервере, и браузер должен снова загрузить изображение.

в PHP вы можете использовать этот трюк

  

Функция time () показывает текущую временную метку. Нагрузка каждой страницы различна. Таким образом, этот код обманывает браузер: он читает другой путь и «думает», что изображение изменяется, так как пользователь посетил сайт в последний раз. И он должен перезагрузить его, а не использовать кеш-память.

В PHP вы можете отправить случайное число или текущую временную метку:

  

или

  

Go Random. Просто используйте случайное число и добавьте его с именем файла изображения.

  

это не было нормально, я думаю, что это способ правильно его программировать.

  < ?php echo "" ?>