Обновление GWT-приложения на стороне клиента - PullRequest
12 голосов
/ 27 января 2011

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

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

Ответы [ 2 ]

13 голосов
/ 27 января 2011

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

Cache-Control: no-cache

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

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

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

3 голосов
/ 28 января 2011

Этот раздел может помочь вам очистить кеш: как очистить кеш в gwt?

...