2011-01-27 3 views
12

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

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

ответ

13

Убедитесь, что ваши файлы "*.nocache.*" и стартовая страница (обычно «index.html») подаются с правильными заголовками кеширования HTTP. См. Ideal HTTP cache control headers for different types of resources для обсуждения этой (несколько сложной) темы. В принципе, вы, вероятно, захотите установить

Cache-Control: no-cache 

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

Как сделать эту конфигурацию, зависит от вашего веб-сервера (Apache HTTPD, вы можете использовать this guide).

Альтернативно - если вы используете сервер JavaEE (Tomcat, Jetty, ...) для обслуживания этих файлов - вы можете использовать сервлет-фильтр. Может быть, вы хотели бы использовать мой пример из How to set Expires HTTP header on a single JS file in Apache Tomcat?