Изменения, внесенные в файл js или файл views или файл css, не отображаются пользователем - PullRequest
0 голосов
/ 28 июня 2019

Я разработал одностраничное веб-приложение с несколькими представлениями.Для рендеринга этих видов было использовано ng-if.

Каждое представление имеет отдельный контроллер.Многие функции кликов были обработаны с помощью Jquery.Для бэкэнда была использована Java.Целое приложение было разработано в spring MVC и развернуто в WebLogic.

Проблема заключается в всякий раз, когда я делаю какие-либо изменения в представлениях или js-файле, это не отражается после развертывания нового WAR-файла без очистки кеша и выполнения жесткого обновления (ctrl+F5/R),

Я получил ответ на этот вопрос несколько минут назад, который был связан с ServiceWorker и appCache, но его больше нет в списке ответов.У кого-нибудь есть идеи по этому поводу?

Мне нужно постоянное решение для этого, так как у меня более 5000 пользователей, и я не могу просить всех делать это после каждого развертывания.

Я пытался предоставить версию, когда я включаю ее в index.jsp, как (filename.js?version=2.1).Но это не похоже на работу для меня.Я не проверял это на chrome или любом другом браузере, так как только IE10, edge доступны для меня и пользователей.

1 Ответ

1 голос
/ 28 июня 2019

Добавление запроса в конце импортированного файла JS работает только на языке клиента.
Если вы используете файл JSP, вы можете добавить его в начале вашего файла, это отключит кэширование

<%
response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Pragma","no-cache"); 
response.setDateHeader("Expires", -1);
%>

Для IE вам нужно добавить следующие теги HTML:

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="Expires" CONTENT="-1">

Вы можете указать срок действия файла в response.setDateHeader("Expires", -1);
См. this для получения дополнительной информации.

...