java - Tomcat 和 Spring MVC 中的缓存

标签 java spring tomcat caching

我有一个 Web 应用程序,它作为 war 文件部署到 Tomcat 容器中。该应用程序本身有两个主要方面:

  1. 它使用 Spring MVC 提供 REST 端点
  2. 它将基于 AngularJS 的单页应用程序作为静态内容发布。从技术上讲,根 webapp 文件夹中有一个 index.html,它使用 html http-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/

相关文章:

java - 使用 java.awt.Robot 键入字符串

java - 登录成功后无法重定向到主页

java - Tomcat 上下文和 JDBC...我做错了什么?

java - 未能编译 Tomcat 的 index.jsp 示例

java - Hibernate + Spring + 持久一对一关系 + 空外键

java - 重新部署后使用 JSF 2 防止 ViewExpiredException

java - Eclipse 不再在快速修复中提出导入建议

java - 如何使用标准 Java 布局管理器更正/居中 GridLayout?

java - 使用 javax.servlet.RequestDispatcher.include() 时如何将参数传递给 .jsp 文件?

spring - 如何在@RestController 中使用 Pageable?