如何禁用 tomcat 缓存?我有奇怪的静态文件问题

Ste*_*all 26 tomcat web-server cache

如何防止tomcat缓存?我有通过 ajax 加载和使用的 css 和基本 html 文件,除非我重新启动 tomcat,否则这些更改似乎没有反映。不同的机器,不同的浏览器,我没有收到更新的文件。

想法?

Ada*_*and 21

更改 cachingAllowed 标志后,您可能必须删除 /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>
Run Code Online (Sandbox Code Playgroud)

  • 我在哪里更改“chachingAllowed”标签? (4认同)
  • 对于任何正在阅读的人来说,这个答案现在已经过时了,并且不再是真正正确的(对于 Tomcat 5+) (4认同)
  • +1 我完全忘了在我原来的答案中提到这一点。谢谢! (2认同)
  • 大声笑......爱在哪里? (2认同)

naX*_*aXa 16

对于 Tomcat 8 / Tomcat 9 属性应添加到 conf/context.xml 中,如下所示

<Context>
  <Resources antiResourceLocking="false" cachingAllowed="false" />
  ...
</Context>
Run Code Online (Sandbox Code Playgroud)

更改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 配置参考

  • &lt;Resources&gt;-Tag 上的 antiResourceLocking 对于 tomcat 8 来说绝对是错误的 (2认同)

Ret*_*ner 13

我在 Tomcat 7 中遇到了这个问题,原因是我将 antiResourceLocking 设置为 true(这听起来是个好主意......)。

根据文档(http://tomcat.apache.org/tomcat-7.0-doc/config/context.html):

请注意,将此设置为 true 会产生一些副作用,包括在正在运行的服务器中禁用 JSP 重新加载:请参阅 Bugzilla 37668。

就我而言,它甚至导致缓存纯静态文本文件。

所以,总而言之,至少为了快速开发,我不得不使用:

antiResourceLocking="false"
cachingAllowed="false"
Run Code Online (Sandbox Code Playgroud)