4

とてもイライラします。:P

これらがユーザーのブラウザにキャッシュされることを本当に望んでいますが、これを設定しています。

Cache-Control:no-store、no-cache、must-revalidate、post-check=0、pre-check=0

どうすればこれを止めることができますか?

設定でキャッシュに関連するものを探してみました。ドキュメントによると、すべてのデフォルト値が使用されます。つまり、許可されています。JS と CSS のような静的ファイルは異なりますか?

編集:Chromeが「キャッシュから取得された」と言っているため、一部のJSファイルがキャッシュを許可されていることに気付きました。ただし、CSS ファイルはありません。

4

3 に答える 3

2

独自のキャッシュ フィルターを作成し、Web xml で構成することができます。

ここでは、それを実装する方法の基本的でありながら優れた例を示します。

あなたweb.xmlのフィルターを宣言します:

<filter>
    <description>Set HTTP headers for a mapping.</description>
    <filter-name>CacheFilter</filter-name>
    <filter-class>your.package.CacheFilter</filter-class>
    <init-param>
        <description>Adds an expires header to the response</description>
        <param-name>header</param-name>
        <param-value>Expires: Thu, 26 Apr 2012 20:00:00 GMT</param-value>
    </init-param>
</filter>

次に、それをマップします(応答に適用します):

<filter-mapping>
    <filter-name>CacheFilter</filter-name>
    <url-pattern>*.js</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
    <filter-name>CacheFilter</filter-name>
    <url-pattern>*.css</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

サーバーから送信されるデータの負荷を軽減するために、(これと同じ方法で) 圧縮フィルターを使用することもできます。このgzip フィルターの実装は、 (キャッシュ フィルターに沿って) 何年も前から機能しており、問題はありませんでした。

于 2011-04-22T09:18:32.737 に答える
1

または、サーブレットにキャッシュの有効期限と応答の最終変更ヘッダーを設定させることもできます。

また、JavaScriptとCSSを圧縮するGZIPをお勧めします。Tomcatの/examplesディレクトリには、適切なURLに接続できる圧縮フィルターが付属しています。

パフォーマンスを向上させるには、JavaScriptとCSSを組み合わせて縮小する必要があります。

これらはすべて、Firefox用のYSlowプラグインからの推奨事項です。Firebugプラグインを使用すると、これらの対策がどれほど効果的であるかがわかります。

于 2011-04-21T22:40:06.747 に答える
1
<FilesMatch "\.(js|css)$">
    ExpiresDefault "now plus 1 week"
</Files>

Tomcat 構成ののどこかにある限り、Apache 構成でトリックを実行する必要があります。

于 2011-04-21T22:35:24.710 に答える