Если я правильно понимаю, броузер кэширует изображения, файлы JS и т. Д. На основе имени файла.Поэтому существует опасность, что если один такой файл будет обновлен (на сервере), браузер будет использовать вместо этого кэшированную копию.
Обходной путь для этой проблемы - переименовать все файлы (как часть сборки),таким образом, что имя файла включает в себя MD5-хэш его содержимого, например,
foo.js -> foo_AS577688BC87654.js
me.png -> me_32126A88BC3456BB.png
Однако, помимо переименования самих файлов, все ссылки на эти файлы должны быть изменены.Например, тег, такой как <img src="me.png"/>
, должен быть изменен на <img src="me_32126A88BC3456BB.png"/>
.
Очевидно, что это может быть довольно сложно, особенно если учесть, что ссылки на эти файлы могут динамически создаваться в коде на стороне сервера.
Конечно, одно из решений - полностью отключить кэширование в браузере (и любые кэши между сервером и браузером) с использованием заголовков HTTP.Однако отсутствие кэширования создаст собственный набор проблем.
Есть ли лучшее решение?
Спасибо, Дон