обновление изображения с тем же именем

#git #version-control

#git #контроль версий

Вопрос:

Я использую Git.

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

Как мне это исправить?

Ответ №1:

Вы можете попробовать добавить «?timestamp» к атрибуту src тега img.

Пример:

 <image src="some_image.jpg?123456789" />
  

Вы должны использовать логику на стороне сервера, чтобы получить время модификации файла (File mtime) и преобразовать его в секунды с момента последней эпохи Unix.

Другой вариант — использовать версии вместо временных меток.

Примеры:

  • первая редакция

     <image src="some_image.jpg?v=1" />
      
  • вторая редакция

     <image src="some_image.jpg?v=2" />
      

Комментарии:

1. Teddy…so вы говорите, что это проблема с кэшем? Я не понимаю, как это может быть, поскольку это происходит в браузерах, которые ранее не просматривали страницу.

2. Спасибо @Teddy. Иногда я сталкивался с такой же проблемой, и ваше решение показывает мне простой способ ее решения. 😉

Ответ №2:

То, что вы видите в каталоге / рабочей копии, — это то, что вы должны видеть в своем веб-браузере. Git не будет творить какую-то магию и не заставит ваш сайт обслуживать более старую версию изображения.

Вы не предоставили информацию о том, как на самом деле развернут ваш сайт. Это локальное развертывание, при котором у вас просто есть рабочий каталог на вашем компьютере, и сайт развертывается из него? Или вы выполняете развертывание на удаленном сервере из своего локального каталога? Или вы отправляете запрос на удаленный сервер, и сайт обслуживается с этого удаленного сервера? Если это последнее, убедитесь, что изменение в изображении отправлено на сервер.

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

Можете ли вы ответить на эти вопросы и добавить детали к вашему вопросу.