2011-01-27 13 views
12

GWTを使用してアプリケーションを作成しました。それはクライアントのために完全に動作します。しかし、私のアプリケーションで何かを変更して、再コンパイルし、サーバーとクライアントにアクセスして自分のアプリケーションにアクセスすると、ブラウザはアプリケーションの新しいバージョンを取得せず、以前にキャッシュされたバージョンを使用します。これにより、RPCエラーなどの問題が発生します。クライアントサイドでのGWTアプリケーションのリフレッシュ

私のページにアクセスしているときにクライアントのブラウザに新しいバージョンのアプリケーションをダウンロードさせ、サーバ上のバージョンが一致する場合はキャッシュされたバージョンを使用する方法を教えてください。

答えて

13

"*.nocache.*"ファイルとスタートページ(通常は「index.html」)に正しいHTTPキャッシュヘッダーが提供されていることを確認してください。この(やや難しい)トピックについては、Ideal HTTP cache control headers for different types of resourcesを参照してください。基本的には、

Cache-Control: no-cache 

と設定することをお勧めします。 (ちなみに、これはファイルが変更されただけ再ダウンロードを強制的に!)

この設定を行う方法、(アパッチからhttpdのために、あなたはthis guideを使用することができます)Webサーバーに依存します。

また、これらのファイルを処理するためにJavaEEサーバー(Tomcat、Jetty、...)を使用する場合は、サーブレット・フィルターを使用できます。たぶん、あなたはこのトピックでは、キャッシュをクリアするにはあなたを助けることができるHow to set Expires HTTP header on a single JS file in Apache Tomcat?

関連する問題