2017-03-28 4 views
0

30日間キャッシュしたいたくさんの静的ファイル(javascript,css,images)を含むGWTを使用するアプリケーションを開発しました。私は多くのブログを読んだが、何の手がかりも得ていなかった。GWTでの静的ファイルのキャッシュ

- 静的ファイルのキャッシュ方法 - キャッシュを達成するための可能なオプション(私はここで私は展開のためのglassfish /ペーシュ・カショーロサーバーを使用しています、サーバーやGWTアプリケーションで設定する必要があります)

任意のアイデアは何ですか? 注:私は、最小限のコード変更でこれを達成しないしたい、でも私はこのClient side caching in GWT を読みますが、ディスパッチャアプローチあなたのサーブレットコンテナにExpiresFilterのようなものを追加する必要があります

答えて

1

に行きたくありません。

私は、リンクの内容が消えるだけの場合には、上記のリンクから設定の詳細を追加している:

あなたは、フィルタとフィルタマッピングを追加するのweb.xmlを編集する必要があります。

<filter> 
    <filter-name>ExpiresFilter</filter-name> 
    <filter-class>server.ExpiresFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>ExpiresFilter</filter-name> 
    <url-pattern>/images/\*</url-pattern> <!-- these patterns should match cached resources --> 
    <url-pattern>/resources/\*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

を使用すると、異なるアプリケーションサーバで使用するため、よりポータブルなアプローチが必要な場合は、私が行ったように、一般的なサーブレットFilterを書き終わるかもしれません。

あなたの指定されたパスにのExpiresCache-Control: max-ageというヘッダーを設定しただけで大したことはありません。

私はthisの実装と、howのTomcatをスタンプしました。

+0

ありがとうsebastain(+1)..何はどうなりますか?それは必須ですか?ここにもう1つの問題があります .cache.htmlファイルは404を与えていますが、このファイルもキャッシュしたいと思います。 –

+0

Glassfishの例では転送リクエストにフィルタを適用するために ' REQUEST 'がデフォルトです。 [site](https://docs.oracle.com/cd/E19575-01/819-3669/bnagf/index.html)は、これを少し明確にしています。 あなたのユースケースでは、両方の 'dispatcher'行を省略することができると思います。 しかし、404はフィルタの結果ではありません。一定時間内に再度ブラウザにファイルを要求しないようにブラウザに指示します。 –

関連する問題