Подтвердить что ты не робот

Обновление приложения GWT на стороне клиента

Я написал приложение с использованием GWT. Он отлично работает для клиента. Но когда я что-то меняю в своем приложении, перекомпилируя, а затем развертывая на сервер и клиент, доступ к моему приложению, его браузер не поднимает новую версию приложения, а использует ранее кэшированную версию. Это вызывает ошибки RPC и другие проблемы.

Как заставить браузер пользователя получать новую версию приложения, когда он посещает мою страницу, и использовать кешированную версию, если она соответствует версии на сервере.

4b9b3361

Ответ 1

Убедитесь, что ваши файлы "*.nocache.*" и ваша стартовая страница (обычно "index.html" ) обслуживаются с правильными заголовками кеширования HTTP. См. Идеальные заголовки управления кэшем HTTP для различных типов ресурсов для обсуждения этой (несколько сложной) темы. В принципе, вы, вероятно, захотите установить

Cache-Control: no-cache

для этих файлов. (Кстати, это заставляет повторную загрузку только тогда, когда файл изменился!)

Как это сделать, зависит от вашего веб-сервера (для Apache Httpd вы можете использовать это руководство).

Альтернативно - если вы используете сервер JavaEE (Tomcat, Jetty,...) для обслуживания этих файлов - вы можете использовать сервлет-фильтр. Возможно, вы хотите использовать мой пример из Как установить HTTP-заголовок Expires в одном JS файле в Apache Tomcat?