在开发中禁用Tomcat / Jetty ETag或缓存,而不是在IOS

时间:2015-08-28 10:05:00

标签: ios tomcat java-ee safari jetty

任何人都知道是否有办法禁用tomcat etag缓存(开发中)或其使用的任何机制?

它在ios浏览器中效果不佳。

当我更改文件时,我会刷新iPhone Safari浏览器,但不会更新任何内容。我可以做二十次,结果仍然相同。

然而,当我在台式计算机上刷新我的chrome 浏览器时,它会像往常一样刷新。我可以然后去野生动物园浏览器刷新并瞧瞧它,它会刷新。

它让我相信它每次都与服务器通信,(我也可以在日志中看到)但是tomcat和jetty可能响应使用本地缓存,因为它认为什么都没有改变。

哪个不是真的。我不确定为什么tomcat会以不同的方式威胁Chrome和IOS,但似乎这样做。或者IOS不尊重标题上的缓存失效:

response.setDateHeader( "Expires"      , 0                                                                           );
response.setDateHeader( "Last-Modified", new Date().getTime()                                                        );
response.setHeader    ( "Pragma"       , "no-cache"                                                                  );
response.setHeader    ( "Cache-Control", "max-age=0, post-check=0, pre-check=0, no-store, no-cache, must-revalidate" );

但这对Tomcat或Jetty都不起作用。

1 个答案:

答案 0 :(得分:0)

有点候,Java再次受到指责。

我正在从URL提供我的内容,我发现它默认会缓存它们。

要防止缓存,您需要知道设置

   url.openConnection().setUseCaches(false);

这让我们想知道,这可能会重演哪些其他课程。

非常聪明的Java,为我做缓存。就像我需要的那样,我自己也无法解决这个问题。