2011-01-27 27 views
12

he escrito aplicación utilizando GWT. Funciona perfectamente para el cliente. Pero cuando estoy cambiando algo en mi aplicación, recompilando y luego implementando en el servidor y el cliente accede a mi aplicación, su navegador no está recogiendo la nueva versión de la aplicación, sino que usa una versión previamente almacenada en caché. Esto desencadena errores RPC y otros problemas.aplicación GWT refrescante en el lado del cliente

¿Cómo puedo forzar al navegador del cliente a obtener una nueva versión de la aplicación cuando visitan mi página y usar la versión en caché si coincide con la versión en el servidor?

Respuesta

13

Asegúrese de que sus archivos "*.nocache.*" y su página de inicio (generalmente "index.html") se entregan con los encabezados de caché HTTP correctos. Ver Ideal HTTP cache control headers for different types of resources para una discusión sobre este tema (algo difícil). Básicamente, es probable que desee establecer

Cache-Control: no-cache 

para estos archivos. (Por cierto, esto obliga a una re-descarga únicamente cuando el archivo ha cambiado!)

Cómo hacer esta configuración, depende de su servidor web (Apache Httpd, puede utilizar this guide).

Alternativamente, si utiliza un servidor JavaEE (Tomcat, Jetty, ...) para servir estos archivos, puede usar un filtro de servlet. Tal vez le gustaría utilizar mi ejemplo de How to set Expires HTTP header on a single JS file in Apache Tomcat?

Cuestiones relacionadas