web-dev-qa-db-ja.com

Tomcatキャッシングを無効にするにはどうすればよいですか?奇妙な静的ファイルの問題があります

Tomcatがキャッシュされないようにするにはどうすればよいですか? CSSとajaxを介して使用する基本的なhtmlファイルがあり、Tomcatを再起動しないと、変更が反映されないようです。別のマシン、別のブラウザー、そして私は更新されたファイルを受け取りません。

考え?

26
Stefan Kendall

CacheAllowedフラグを変更した後、/ work/Catalina/localhostのアプリケーションキャッシュフォルダーを削除する必要がある場合があります。

構成は、server.xmlで次のように導入できます。

<Context className="org.Apache.catalina.core.StandardContext"
                 cachingAllowed="false"
                 charsetMapperClass="org.Apache.catalina.util.CharsetMapper"
                 cookies="true" 
                 reloadable="false" 
                 wrapperClass="org.Apache.catalina.core.StandardWrapper">
        </Context>
21
Adam Brand

Tomcat 8/Tomcat 9の場合、次のようにconf/context.xmlにプロパティを追加する必要があります

<Context>
  <Resources antiResourceLocking="false" cachingAllowed="false" />
  ...
</Context>

cachingAllowedフラグを変更した後、/ work/Catalina/localhostのアプリケーションキャッシュフォルダーを削除する必要がある場合があります。 IntelliJのキャッシュもクリアするIDEA(Tomcatの実行に使用する場合):

 Mac:/ Users/{:user}/Library/Caches/IntelliJIdea {:version}/Tomcat/
 Linux:/home/{:user}/.IntelliJIdea{:version}/system /Tomcat/
Windows:C:\ Users\{:user} \。IntelliJIdea {:version}\system\Tomcat\

他のパラメーターについては、 Apache Tomcat 9設定リファレンス を参照してください。

14
naXa

Tomcat 7でこの問題が発生しました。その理由は、antiResourceLockingをtrueに設定していたためです(これは良い考えのように思えます...)。

ドキュメントによると( http://Tomcat.Apache.org/Tomcat-7.0-doc/config/context.html ):

これをtrueに設定すると、実行中のサーバーでのJSPリロードの無効化など、いくつかの副作用があることに注意してください。Bugzilla37668を参照してください。

私の場合、プレーンスタティックテキストファイルがキャッシュされることさえありました。

したがって、要約すると、少なくとも迅速な開発のために、私は使用しなければなりませんでした:

antiResourceLocking="false"
cachingAllowed="false"
13
Reto Höhener

このドキュメントを確認しましたか: Apache Tomcat設定リファレンス

cacheMaxSize-静的リソースキャッシュの最大サイズ(キロバイト単位)。指定しない場合、デフォルト値は10240(10メガバイト)です。

cacheTTL-キャッシュエントリの再検証の間隔(ミリ秒)。指定しない場合、デフォルト値は5000(5秒)です。

cachingAllowed-このフラグの値がtrueの場合、静的リソースのキャッシュが使用されます。指定しない場合、フラグのデフォルト値はtrueです。

これらのパラメーターは、Tomcat 5.5とTomcat 6.0で同じです。

4
KPWINC