2011-01-27 36 views
12

我已經使用GWT編寫了應用程序。它非常適合客戶。但是,當我在應用程序中更改某些內容時,重新編譯然後部署到服務器和客戶端訪問我的應用程序時,他的瀏覽器沒有選擇新版本的應用程序,而是使用以前的緩存版本。這會觸發RPC錯誤和其他問題。在客戶端刷新GWT應用程序

如何強制客戶端的瀏覽器在他們訪問我的頁面時獲取新版本的應用程序,如果它與服務器上的版本匹配,則使用緩存版本。

回答

13

請確保您的"*.nocache.*"文件和您的起始頁面(通常是「index.html」)具有正確的HTTP緩存標頭。請參閱Ideal HTTP cache control headers for different types of resources以瞭解有關此(有點困難)主題的討論。基本上,你可能想要設置這些文件的

Cache-Control: no-cache 

。 (順便說一句,這迫使重新下載當文件已經改變!)

如何做到這一點的配置,取決於您的Web服務器上(爲Apache的httpd,可以使用this guide)。

另外 - 如果您使用JavaEE服務器(Tomcat,Jetty,...)來提供這些文件 - 您可以使用Servlet過濾器。也許你想用我的例子How to set Expires HTTP header on a single JS file in Apache Tomcat?