2016-12-26 3 views
0

У меня есть веб-приложение, опубликованное в IIS. Все мои JS-файлы вызывают из моего статического html-файла с именем «Index.html». В этом html-файле я вызываю каждый JS-файл с тегом <script>, и для того, чтобы управлять нашими версиями и выполнять обновления без истории пользователя и удаления кеша, я добавил «v = {version] в конце каждого файла JS-файла URL, как:.html Кэширование в HTML

<script src="./app.js?v=20161226.1" /> 

После нескольких обновлений версий, я заметил, что пользователям необходимо обновить страницу, чтобы получить самую последнюю версию файла index.html. После поиска инструментов разработчика Chrome и поиска в разделе «Сеть» в Инструментах разработчика я заметил, что файл Index.html загружается из кеша (отображается значок «(из кэша)» в сети) ,

После поиска в Интернете для любого решения для uncaching .html файлов (Потому что нет v = {версии} для моего файла .html?), Я обнаружил, что добавление:

<meta http-equiv="cache-control" content="no-cache" /> 
<meta http-equiv="expires" content="0" /> 
<meta http-equiv="pragma" content="no-cache" /> 

ISN» t решение проблемы, и мой файл Index.html по-прежнему загружается из кеша.

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

Единственное, что помогает, это обновить (F5), а затем перезагрузить файл Index.html (не загружается из кеша и отображается последняя версия этого файла Index.html). Но если кто-то вводит url и вводит его в URL-bar, Index.html все еще загружается из кеша.

Есть ли что-то, что я сделал неправильно и должен добавить что-нибудь еще? Есть ли что-нибудь, что можно сделать для решения этой проблемы?

Спасибо!

+0

Вызывает ли это нажатие клавиши Ctrl + Shift + R? –

+0

Я не хочу, чтобы пользователи принудительно обновляли кеш. Другими словами - у меня нет самых технологических пользователей. Это означает, что пользователь будет только нажать закладку/ввести url/нажмите ссылку/сохранить ссылку на рабочем столе и откроет ее оттуда. Мне нужен последний .html-файл для загрузки независимо от того, как пользователь добрался до моего сайта ... –

+0

Я понимаю, босс, я спрашиваю, помогает ли это. Если это так, вам нужно определенно установить свою прагму ... –

ответ

0

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

Если вы часто обновляете свой HTML-код, просто установите заголовки управления кешем, чтобы сообщить браузеру чаще проверять наличие обновлений. Воспользуйтесь Etags или If-Modified-Since, а не в зависимости от заголовка Expires, установленного далеко в будущем.

NB: Вы должны использовать настоящие HTTP-заголовки. <meta http-equiv> - плохая шутка.

 Смежные вопросы

  • Нет связанных вопросов^_^