springboot2 thymeleaf 静态资源加版本号控制缓存更新

背景

前后端不分离的项目,用的Springboot2 thymeleaf
用的js原生,没有用到webpack,所以不能在每次js变更以后打包自动给静态文件加上hash后缀。

解决方案:

启用springboot的ContentVersionStrategy功能

配置流程

1、 在application.yml中添加如下配置。(就这么easy

spring:  
  resources:
    chain:
      strategy:
        fixed:
          enabled: true
          paths: /**
          version: v1.0.0

2、升级改进(上面的方式需要每次发版手动修改版本号,太麻烦。程序员的想法就是能少动手就不BB)动态获取mvn项目版本号,每次发版不用关注上面的配置。将上面配置改为

spring:  
  resources:
    chain:
      strategy:
        fixed:
          enabled: true
          paths: /**
          version: @project.version@

让上面@project.version@能被正常解析,需要在mvn pom.xml文件中添加如下配置

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

验证方式

访问页面,F12控制台,查看到如下请求,即说明你的项目以后再也不用上完线就在用户群让用户清理缓存了。


image.png

参考文档:

推荐阅读更多精彩内容