2010-11-25 11 views
7

キャッシュをクリアするにはgwtgwtでキャッシュをクリアする方法は?

ブラウザがキャッシュを保持するのを防ぐ方法がありますかgwt

+0

ブラウザでキャッシュを何?もっと詳しくお聞かせください。 –

+0

http://ja.wikipedia.org/wiki/Web_cache –

答えて

16

GWTアプリケーションをデプロイするときは、プロキシやブラウザがGWTによって生成された.nocache.jsファイルをキャッシュしないようにすることが重要です。 1つの解決策は、キャッシュ動作を制御する必要なHTTPヘッダーを追加するサーブレットフィルターを実装することです。ここ

は、フィルタの:この例でhttp://seewah.blogspot.com/2009/02/gwt-tips-2-nocachejs-getting-cached-in.html

ヘッダは、次のとおり

Date: Wed, 24 Nov 2010 20:32:43 GMT 
Expires: Wed, 01 Nov 2000 00:00:00 GMT 
Pragma: no-cache 
Cache-Control: no-cache, no-store, must-revalidate 

Dateが要求の時間に設定されるべきです。

Expiresは、過去にはいつか設定するのが最適です。これにより、誰もが、すでに失効したコンテンツをすべての人に強制的に考慮させるよう強制します。

Pragmaは、Cache-Controlに置き換えられたタグですが、それを持たせることはありません。

Cache-Controlno-cacheは、ブラウザまたはプロキシが、キャッシュされたコピーをクライアントにリリースする前に再検証する必要があることを意味します。 no-storeは、誰もキャッシュされたコピーを保持していないことを意味します(これにより、no-cacheは冗長になります)。 must-revalidateは、ブラウザ/プロキシが新鮮度情報に従い、再妥当性検査を行い、またno-storeで冗長でなければならないと述べています。

0

途中にApache2サーバを置いたときに行う最良の方法は、常にバーチャルホストを設定して、常にnssacheファイルをダウンロードすることです。ここには例があります:http://pgt.de/2011/01/27/apache-configuration-for-gwt-applications/comment-page-1/#comment-23996

仮想サーバーのファイルでこれを置く:

<IfModule mod_expires.c> 
    ExpiresActive On 
    </IfModule> 

    <IfModule mod_headers.c> 
    <ProxyMatch (.*)nocache\.js$> 
     Header Set Cache-Control "max-age=0, no-store" 
    </ProxyMatch> 
    <ProxyMatch (.*)\.cache\.(.*)> 
     Header Set Cache-Control "max-age=31536000, public, must-revalidate" 
    </ProxyMatch> 
    <ProxyMatch (.*)\.cache\.js$> 
     Header Set Cache-Control "max-age=31536000, private" 
    </ProxyMatch> 
    </IfModule> 

<Proxy *> 
    <IfModule mod_expires.c> 
     ExpiresByType application/json "now" 
     ExpiresByType text/css   "now" 
     ExpiresByType text/html   "now" 
    </IfModule> 
    <ifModule mod_headers.c> 
     Header unset ETag 
     Header unset Last-Modified 
    </ifModule> 
    FileETag None 
    </Proxy> 

乾杯

関連する問題