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