美文网首页
Springboot2 thymeleaf 静态资源加版本号控制

Springboot2 thymeleaf 静态资源加版本号控制

作者: VIAE | 来源:发表于2020-08-06 15:40 被阅读0次

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

关于静态资源缓存不更新的问题,用了以下几种解决方案

方法一

在静态资源引用的时候加上版本号,最开始我就是这么做的,因为当时确实没几个文件
index.html

<link rel="stylesheet" type="text/css" href="../static/css/index.css?v=1.0.0">
<script type="text/javascript" src="../static/js/index.js?v=1.0.0"></script>

bug:文件多了以后,这种方法就不太适合了

方法二

动态添加静态资源,加时间戳
index.html

<script>
  document.write('<script type="text/javascript" src="../static/js/index.js?v=' +new Date().getTime()+'"></script>')
</script>

bug:每次刷新页面时间戳都会改变,都要重新拉取资源

方法三

Springboot静态资源路径映射 添加版本号
首先更改java配置
WebMvcConfig

@Configuration
public class MvcInterceptorConfig implements WebMvcConfigurer {

    /**
     * 添加静态资源文件
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //
        registry.addResourceHandler("/static/**") 
                .addResourceLocations("classpath:/static/")
                .resourceChain(false)
                .addResolver(new VersionResourceResolver()
                .addFixedVersionStrategy("v1.0.1", "/**") //添加版本号,手动修改版本号
                 // .addContentVersionStrategy("/**")  //md5码方式
                );
    }
}

其次修改
application.properties (版本号与md5配置一样,否则不生效)

spring.resources.chain.strategy.content.enable=true
spring.resource.chain.strategy.content.path=/**

使用
index.html

<html lang="en" xmlns:th="http://www.thymeleaf.org">
  <head>
    <link rel="stylesheet" type="text/css"  th:href="@{/static/css/index.css}">
    <script type="text/javascript" th:src="@{/static/js/index.js}"></script>
  </head>
</html>

最终解析路径:localhost:8080/static/v1.0.1/js/index.js

方法四

只修改application.properties 配置版本号


# 指定版本号
spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.paths=/**
spring.resources.chain.strategy.fixed.version=v1.0.0

最终解析路径:localhost:8080/v1.0.1/js/index.js

参考文档 https://blog.csdn.net/xichenguan/article/details/52794862

相关文章

网友评论

      本文标题:Springboot2 thymeleaf 静态资源加版本号控制

      本文链接:https://www.haomeiwen.com/subject/clwzrktx.html