SpringMvc对静态资源的缓存

1、最近客户反映页面加载js css频繁每点击按钮刷新页面都要重新向服务器重新获取。

2、这是查到可以设置http cache,但是在jsp页面中设置

   response.addHeader("Cache-Control","max-age=1800"); 并没有起作用。就自行百度了spring mvc对静态资源缓存的处理。

3、由于目前使用的spring3则配置如下:

<mvc:resources mapping="/appframe/**" location="/appframe/" cache-period="1800"/>

cache-period单位是秒,是设置缓存过期时间。当设置完这些后在js以及css的header中会有cache-control的属性

Cache-Control: max-age=1800, must-revalidate。

  • must-revalidate:告诉浏览器、缓存服务器,本地副本过期前,可以使用本地副本;本地副本一旦过期,必须去源服务器进行有效性校验。
  • max-age=1800 是静态文件的过期时间

4、本地进行了测试,当过期时间到了时再次获取并不会重新向服务器抓取,还是会从缓存拿。这是请求的状态码是  304/NOT Modifed 这里认为是检测到服务器资源并未发生改变所以还是从缓存获取。

接下来我将服务器资源做了修改重启服务发现这是获取的资源是改之后的。

5、换另一种方式测试,当还没超过过期时间改了服务器静态资源重启之后,发现修改的资源并未生效。

6、改测试方法在Tomcat以及weblogic均有测试。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值