ioni c cordova ng-sr c принудительная перезагрузка кэша на основе нового размера изображения? - PullRequest
0 голосов
/ 12 марта 2020

Прежде чем пытаться сказать, что на этот вопрос ответили в другом месте или это дубликат, ПОЖАЛУЙСТА, полностью прочитайте. Все остальные решения являются кэш-бастерами, заставляющими перезагрузить образ ВСЕ. Я хочу принудительно перезагрузить изображение только при условии нового размера изображения, но с тем же именем.

На моем сервере я называю изображения ceLogo_C1001.png - 1001 - это идентификатор клиента, изображение - это компания lo go. Если клиент обновляет свое изображение на стороне сервера, изображение по-прежнему называется ceLogo_C1001.png.

  <img ng-src='myserver.com/clients/images/ceLogo_C1001.png'>

Однако в приложении изображение не обновляется и показывает старый ceLogo_C1001.png, а не новый. Я считаю, что это потому, что старое изображение и новое изображение имеют одно и то же имя. Есть ли способ заставить приложение принудительно перезагрузить изображение, если оно распознает, что размер изображения отличается от предыдущего - даже если изображения по-прежнему имеют одно и то же имя? Я пытаюсь добиться определенной однородности в именование ... без необходимости добавлять даты или инкрементные числа (IE: ceLogo_C1001_1.png) для принудительного изменения имени, что затем приведет к перезагрузке изображения.

1 Ответ

0 голосов
/ 12 марта 2020

Ссылка на кэш изображения sh в зависимости от изменения размера изображения невозможна. Цель кэша - хранить элементы по имени, поэтому в следующий раз, когда браузер увидит запрос на этот именованный ресурс, он не перезагрузит указанный элемент c с удаленного сервера - он извлечет его из кэша.

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

Единственный способ выполнить очистку кэша (принудительно перезагрузить изображение, которое уже в кеше) это добавить что-то вроде ?ver=1 в конце URL. Когда изображение обновляется, увеличивается номер версии

image.png становится image.png?ver=1 // этот URL-адрес кэшируется. Через два месяца новое изображение загружается, но имя остается прежним, увеличивается счетчик: image.png?ver=2 это вызовет перезагрузку, и теперь, возможно, это изображение останется таким же и в кеше в течение следующих 3 месяцев.

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

...