如何使用SpringBoot2.x配置静态文件缓存

  介绍

本篇内容介绍了”如何使用SpringBoot2。x配置静态文件缓存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

配置文件yml配置

春:   ,资源:   ,,static-locations:类路径:/静态,类路径:/视图/,类路径:/模板/,,链:   ,,,,,的策略:   ,,,,,,,# MD5实现   ,,,,,,,内容:   ,,,,,,,,,启用:真实   ,,,,,,,,,路径:/* *   ,,,,,,,#版本号管理(与MD5实现方式同时存在时,需要指定不同的路径,来分别实现对应的文件管理)   ,,,,,,,#固定:   ,,,,,,,,,#,开启版本控制策略,默认为假   ,,,,,,,,,#启用:真实   ,,,,,,,,,#路径:,/* */v1.0.0/* *   ,,,,,,,,,#版本:v1.0.0   ,,,,,缓存:真实   ,,,,,压缩:假   ,,,,,启用:真实   ,,,#缓存   ,,缓存:   ,,,,,cachecontrol:   ,,,,,,,cache-public:真实   ,,,,,,,#,缓存有效期,24小时   ,,,,,,,信息:24小时   ,,,,,#,资源缓存时间,单位天,7天   ,,,,,时间:,7 d

浏览器缓存的过程:

如何使用SpringBoot2。x配置静态文件缓存

1,当第一次访问时,所有的静态资源文件没有缓存,需要请求服务下载对应的文件

2,当第二次页面加载时,因为我们开启了缓存,浏览器会判断是否有缓存

3,有缓存,需要判断,缓存是否过期,过期时间就是通过配置缓存有效期:信息:24 h,实现的

4,如果没有过期,则静态文件直接读取浏览器缓存,不会向服务器重新访问资源

如何使用SpringBoot2。x配置静态文件缓存

5,如果没有缓存或者缓存已经过期,则需要请求服务器,并通过判断<强> last - modified:响应资源的最后修改时间强,是否更新,如果没有更新,返回304状态,读取浏览器缓存

如何使用SpringBoot2。x配置静态文件缓存

6,如果更新了,则说明该文件的再服务器端已经发生了改变,浏览器需要重新加载更新该文件

7日至此一个完整的浏览器缓存加载页面静态资源的过程就算完成了

8,当浏览器向服务器请求后,无论是没有更新,返回304年,还是有更新,重新加载文件,新一轮的缓存有效期生成,也就是之前过期的有效期,现在又重新开始计算时间,此时再访问静态文件,会直接读取缓存,直到缓存再次过期,再进行下一次的循环。

9日我的配置中没有使用Etag,因为它需要很多的md5运算,消耗较多的内存,我觉得我的系统暂时可以不需要这一层

静态资源版本控制

春默认提供了静态资源版本映射的支持。

当我们的资源内容发生改变时,由于浏览器缓存,用户本地的资源还是旧资源,为了防止这种情况发生导致的问题。我们可能会选择在资源文件后面加上参数”版本号”或其他方式。

时间戳实现

在htnl中一如静态文件时,加一个时间戳的后缀,每次加载时间戳是不一样的,这样能保证浏览器每次都向服务器重新请求加载

& lt; script>   ,,,document . write (& # 39; & lt; script 类型=拔谋?javascript", src=https://www.yisu.com/zixun/苯疟?basicschema/common.js吗?v=' + Date.now() + "> ');>   文档。写(“