Как обеспечить перезагрузку кэшированных файлов JavaScript и CSS? - PullRequest
7 голосов
/ 01 февраля 2010

Может кто-нибудь объяснить, как убедиться, что если я обновлю свое веб-приложение, пользователь получит последнюю версию файлов?

Должен ли я добавить динамическую строку ?version=random в конец файла сценария и CSS и изменить ее при развертывании обновлений? Или какова общая стратегия здесь?

Спасибо, Бода Цидо.

Ответы [ 4 ]

4 голосов
/ 14 марта 2011

Оказывается, squid не кэширует файлы с параметром GET. Вам нужно использовать что-то вроде script.2010-02-14.js, если вы хотите, чтобы squid кешировал файл.

"Но что лучше: mylogo.1.2.gif или mylogo.gif? V = 1.2? Чтобы получить Преимущество кеширования популярными прокси и вместо того, чтобы проверять само имя файла. "

http://webcache.googleusercontent.com/search?q=cache:JhDnwSNN-BEJ:www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/+http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/&cd=1&hl=en&ct=clnk&gl=us&client=opera&source=www.google.com

4 голосов
/ 01 февраля 2010

Да, то, как вы упоминаете, очень распространено и является надежным подходом.

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

StackOverflow использует номер редакции SVN:

<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=6180">
</script> 
1 голос
/ 01 февраля 2010

Обычно я ставлю ?mtime в конце имени для изображений, файлов CSS и файлов Javascript, где mtime - время последнего изменения файла.

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

0 голосов
/ 01 февраля 2010

Как вы упоминаете, добавление строки запроса к URL-адресу таблицы стилей / скрипта - это ловкий трюк, позволяющий получить контроль, когда кэшированные версии становятся «недействительными».

Вместо добавления случайной строки я обычно использую дату последней модификации соответствующего файла из файловой системы. Чтобы улучшить коэффициент крутости, вы можете преобразовать дату в числовую форму и отформатировать ее в шестнадцатеричном виде при построении URL: -)

<script type="text/javascript" src="script.js?v=1750493C88"></script>
<link rel="stylesheet" type="text/css" href="style.css?v=1750493C88" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...