
tomcat がキャッシュしないようにするにはどうすればよいですか? ajax 経由で読み込んで使用する css ファイルと基本 html ファイルがありますが、tomcat を再起動しないと変更が反映されないようです。マシンが異なり、ブラウザーも異なるため、更新されたファイルを受信できません。
ご意見は?
答え1
/work/Catalina/localhost
フラグを変更した後、アプリケーション キャッシュ フォルダーを削除する必要がある場合がありますcachingAllowed
。
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>
答え2
Tomcat 8 / Tomcat 9の場合、conf/context.xmlに次のようにプロパティを追加する必要があります。
<Context>
<Resources antiResourceLocking="false" cachingAllowed="false" />
...
</Context>
フラグを変更した後、/work/Catalina/localhost のアプリケーション キャッシュ フォルダーを削除する必要がある場合がありますcachingAllowed
。また、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 設定リファレンスその他のパラメータについては。
答え3
Tomcat 7 でこの問題が発生しましたが、その原因は antiResourceLocking を true に設定していたことでした (良いアイデアのように思えましたが...)。
ドキュメントによると(コンテキスト):
これを true に設定すると、実行中のサーバーで JSP の再読み込みが無効になるなど、いくつかの副作用があることに注意してください。Bugzilla 37668 を参照してください。
私の場合、プレーンな静的テキスト ファイルもキャッシュされてしまいました。
まとめると、少なくとも迅速な開発のためには、以下を使用する必要がありました。
antiResourceLocking="false"
cachingAllowed="false"
答え4
次のドキュメントを確認しましたか:Apache Tomcat 設定リファレンス?
cacheMaxSize
-- 静的リソース キャッシュの最大サイズ (キロバイト単位)。指定しない場合、デフォルト値は 10240 (10 メガバイト) です。
cacheTTL
-- キャッシュ エントリの再検証間の時間 (ミリ秒単位)。指定しない場合、デフォルト値は 5000 (5 秒) です。
cachingAllowed
-- このフラグの値が true の場合、静的リソースのキャッシュが使用されます。指定されていない場合、フラグのデフォルト値は true です。
これらのパラメータは Tomcat 5.5 と Tomcat 6.0 で同じです。