禁用Tomcat缓存以获取静态文件

时间:2014-09-05 15:12:17

标签: tomcat webserver tomcat7 cache-control

如何在位置

处禁用特定静态文件的Tomcat缓存
[Tomcat Path]/webapps/myapp/foo.html

谢谢

1 个答案:

答案 0 :(得分:2)

您无法在单个文件级别配置它。 Tomcat的配置粒度不允许这个恕我直言。 (根据您对丹尼尔斯科特的回复判断,您的目标是单个文件)

您的问题意味着您仍然没有遵循最佳做法:似乎这个静态文件是任意的(例如通过上传等)更改,您需要再次下载它。这意味着您正在更改已部署的Web应用中的文件 - 这绝对违反了最佳做法。

您应该将文件上传到其他位置,并提供自己的下载servlet来提供这些外部资源。在该servlet中,您可以自己实现缓存标头,并基本满足您的所有需求。请记住,也可以从完全压缩的WAR文件中提供Web应用程序 - 并且您无法通过更改任意文件来更新该WAR文件。最后,从安全角度来看,我觉得让webapps目录始终可写是不好的做法。

所以:停止寻找tomcat配置,而不是实现自己的自定义下载和缓存标头。更改您的URL以引用您的下载servlet位置。这会导致您的应用程序出现所需的行为,尽管它在技术上无法以您希望的方式回答您的问题。