0

Я огляделся и попытался понять это, но я не понимаю.JavaScript Refreshes in Production - IIS

Почему, когда я выпускаю новый выпуск в Production с обновлением файла javascript, браузер пользователя не получает последнюю версию.

Несомненно, если у javascript-файла есть новая дата из-за его изменения, версия браузера должна быть старше и поэтому должна запрашивать более новую версию.

Вместо этого пользователям необходимо нажать CTRL Shift R, чтобы обновить силу.

Что мне не хватает? Я хочу изменить настройки в IIS?

Мы используем Google Chrome в качестве браузера. Файлы Javascript и CSS уменьшаются и объединяются.

+0

Chrome кэшируются JavaScript, IMG и CSS ((. Если вы хотите ваши пользователи получат новый js, вы должны переименовать js-файл, возможно, добавить версию, например: « -1,4». –

ответ

4

Браузер предназначен для кэширования файлов js (и css) для оптимизации времени загрузки страницы. Он не будет проверять измененное время datetime в файле.

Самый простой способ предотвратить это - добавить строку запроса в путь к файлу js, а затем изменить ее каждый раз, когда вы меняете файл. Это заставит браузер перезагрузить файл. Например.

<script type="text/JavaScript" src="script.js?v=1"></script> 

Если это не плоский html-файл, имеет смысл кодировать строку запроса на стороне сервера.

+0

Спасибо. Если скрипт используется из многих файлов, есть ли хороший способ управлять изменением номера версии в пути? Я предполагаю, что фактическое имя файла не изменяется. – Chris

+0

Это зависит от платформы/технологии, которую вы используете на самом деле. Любая достойная CMS позволит использовать общие компоненты заголовка, поэтому вы можете управлять номером версии на сайте, просто изменение одного общего компонента. Если вы используете плоские html-страницы, но имеете общие файлы между ними, вероятно, вы захотите использовать серверную часть: http://www.boutell.com/newfaq/creating/include.html –

0

Chrome кэшируются JavaScript, IMG и CSS ((. Если вы хотите, чтобы ваши пользователи, чтобы получить новый JS, вы должны переименовать файл JS, возможно, добавить версии