为什么文件更改这么慢?(Apache Tomcat)

为什么文件更改这么慢?(Apache Tomcat)

我有一台 Apache Tomcat 7 服务器。如果我更改服务器上的文件(例如样式表、javascript 文件或任何纯文本文件),例如使用 vim。然后,如果我在互联网浏览器中转到该文件,并按几次 F5 直到看到实际更改,我必须等待(每 500 毫秒按一次 F5)几秒钟(约 3 秒)才能看到我刚刚更改的内容。

简而言之:如果服务器上的文件发生更改,我会在客户端大约 3 秒后看到它。因此某个地方必须有一个缓存,可能是服务器端,因为我使用 F5,它应该丢弃客户端缓存。那么如何在 Apache Tomcat 服务器上设置目录,以便它不会缓存文件?

我想这样做是因为我创建了一个基于 Ajax/Servlet 的简单聊天网站。但输入消息后,它会在约 3 秒后出现。我知道这可以更快,因为我之前在 PHP 免费网络托管服务器上做过。

答案1

Tomcat 默认缓存静态内容,TTL 为 5 秒。如果你想更改该设置,请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Attributes。具体来说,您需要 cacheTTL、cachingAllowed 以及可能的 cacheMaxSize 和 cacheObjectMaxSize。

答案2

不确定 Tomcat 如何将无缓存添加到所有内容中。自己控制标头的简单方法是在 web.xml 中编写和配置通用标头过滤器,如下所示:

=== web.xml ===

无缓存 xyzfilters.ResponseHeaderFilter

缓存控制无缓存,必须重新验证

CacheForWeek uk.co.slc.crm.common.filters.ResponseHeaderFilter

缓存控制最大年龄=604800,公共

无缓存/*.do

CacheForWeek /图像/*

CacheForWeek /*.js

CacheForWeek /*.css

=== web.xml ===

相关内容