Кто-либо мог объяснить, как удостовериться, что, если я обновляю свое веб-приложение, пользователь получает последнюю версию файлов?
Если я добавляю динамическую строку ?version=random
в конце файлов сценария и CSS и изменения это, поскольку я развертываю обновления? Или что такое общая стратегия здесь?
Спасибо, Boda Cydo.
Да, как вы упоминаете, очень часто и является прочным подходом.
Я лично использую номер ревизии Subversion моих файлов, но вы можете использовать для вас что-нибудь значимое, даже последнее обновленное замедленное изменение файла.
StackoverFlow использует номер ревизии SVN:
<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=6180">
</script>
Я обычно ставлю ? Mime
в конце имени для изображений, файлов CSS и файлов JavaScript, где Mime
- это последнее измененное время файла.
Вы можете альтернативно использовать номер версии, который увеличивается всякий раз, когда файл изменен. Это хорошо работает для библиотек, таких как jQuery, которые имеют официальные выпуски, но имеют тенденцию быть более утомительным, чем требуется для файлов вашего собственного сайта, которые просто изменены по мере необходимости. Конечно, вы все еще можете использовать номера версий в этом случае, но я склонен, чтобы найти ее излишне утомительно (что-то еще, что вам нужно поддерживать).
Как вы сами упомянули, добавление строки запроса в URL-адрес таблицы стилей / скрипта - это изящный трюк, позволяющий получить контроль над тем, когда кэшированные версии «недействительны».
Вместо того, чтобы добавлять случайную строку, я обычно использую дату последней модификации соответствующего файла из файловой системы. Чтобы улучшить коэффициент крутости, вы можете преобразовать дату в числовую форму и отформатировать ее в шестнадцатеричном формате при построении URL: -)
<script type="text/javascript" src="script.js?v=1750493C88"></script>
<link rel="stylesheet" type="text/css" href="style.css?v=1750493C88" />