我有一个 Web 应用程序,它作为 war 文件部署到 Tomcat 容器中。该应用程序本身有两个主要方面:
- 它使用 Spring MVC 提供 REST 端点
- 它将基于 AngularJS 的单页应用程序作为静态内容发布。从技术上讲,根 webapp 文件夹中有一个
index.html
,它使用 htmlhttp-equiv="refresh"
重定向来重定向到子文件夹中的实际 index.html。
当我更新应用程序时,我经常注意到浏览器不会从服务器加载最新版本,而只会显示一些较旧的缓存版本。例如网站在登录页面显示当前版本号,所以如果我将它从 1.0.5 更新到 1.0.6,我经常发现即使我重新加载页面,浏览器仍然显示 1.0.5。按 CTRL+F5
忽略缓存通常可以暂时解决此问题。
我对整个缓存主题不是很熟悉,所以我正在寻找入门资源。
问题:
- 缓存问题是我必须在 Spring 中配置的问题吗?
- 部署 war 文件时是否必须在 Tomcat 中配置一些东西?
- 有没有可能是上面提到的html重定向导致的问题?
最佳答案
这些标签应该有助于防止从缓存中读取
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
Cache-Control header 是在 HTTP 1.1 中添加的,而其他两个 header 也存在于 HTTP 1.0 中。
关于java - Tomcat 和 Spring MVC 中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38072561/