2017-02-15 3 views
-1

Примечание. Этот вопрос не является дубликатом аналогичных вопросов, в которых ответ вызывает запрос случайных чисел, основанный на javascript/php, прикрепленный к концу имен изображений. Как я объяснил в исходном посте, я не могу использовать javascript в коде. Пользователи делают одноразовую копию HTML а и вставить его в места, которые не могут работать JavascriptОстановить изображения из кеширования без изменения имени/параметра изображения


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

Идея состоит в том, что они могут периодически заходить на мой сайт и генерировать НОВЫЕ обновленные изображения. Изображения по-прежнему имеют одинаковое имя на сервере. Таким образом, HTML, который они ранее копировали/вставляли, все еще работает ... он ссылается на одни и те же изображения, но эти изображения были обновлены.

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

  • Я могу дать HTML-код пользователей, который задает случайный параметр запроса на изображении src, но это не поможет, потому что они только копируют/вставляют этот HTML один раз. Параметр случайного запроса будет генерироваться только один раз, и после первого загрузки изображения будут кэшироваться и не будет новый случайный параметр запроса.
  • Я не могу дать HTML-код пользователям, который содержит javascript, чтобы генерировать случайный параметр запроса каждый раз, когда HTML читается, потому что они копируют этот HTML-код в поля, которые обычно не могут запускать скрипты.
  • Я не могу попытаться отключить кеширование на своем конце, очевидно, так как они вставляют этот HTML-код в другие сайты.

Есть ли что-нибудь, что я могу сделать, чтобы отключить кеширование этих изображений из простого HTML? Любой атрибут img, который я могу использовать? Любые идеи для решения этой сложной проблемы?

ответ

-1

Вы можете настроить HTTP-заголовки для предотвращения кеширования.

Cache-Control: no-cache, no-store, must-revalidate 
Pragma: no-cache 
Expires: 0 

Я считаю, что это также достижимо путем установки мета-контента:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/> 
<meta http-equiv="Pragma" content="no-cache"/> 
<meta http-equiv="Expires" content="0"/> 

Источники:

Prevent caching of HTML page

How to control web page caching, across all browsers?

+0

спасибо @Mark, но у меня нет доступа к страницы, на которой будет храниться мой HTML-код, поэтому я не могу установить заголовки или метатеги для страницы. пользователь будет вставлять мой html-код, содержащий теги img, в сообщение в блоге или в другом поле. –

0

Создать

<script> 

tage внутри блока html и использовать метод jvascript Math.random() для создания случайного числа для подачи параметра для этого «случайного параметра запроса на изображении src», что делает все запросы к изображению уникальными и предотвращает кеш.

+1

спасибо @Meysam, но из исходного сообщения: «Я не могу дать HTML-код пользователям, который содержит javascript, чтобы генерировать случайный параметр запроса каждый раз, когда HTML читается, потому что они копируют этот HTML-код в поля, которые обычно не могут выполняться скрипты «. Чтобы уточнить - они делают одноразовую копию HTML ... и что HTML не может иметь javascript. –

Смежные вопросы