Springboot2thymeleafjs/css版本控制

编程

Springboot 2.2.0.RELEASE

1.启用版本控制

通过对请求js/css附加md5码或者手动添加版本号方式来保证在js/css内容发生变更时能及时被浏览器加载到:

yml配置

spring:

thymeleaf:

mode: HTML

cache: false

resources:

chain:

strategy:

content:

enabled: true

paths: /**

enabled: true

cache: false

static-locations: classpath:/static/

java配置

@Configuration

public class MvcInterceptorConfig implements WebMvcConfigurer {

/**

* 功能描述

* <p>

* .addFixedVersionStrategy("v1.0.1", "/**") 为手动添加版本号方式

* .addContentVersionStrategy("/**") 为md5码方式

* </p>

*

* @param registry registry

* @return void

* @author wandoupeas

* @date 2019-11-06

* @since 2019-11-06

*/

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/**")

.addResourceLocations("classpath:/static/")

.resourceChain(false)

.addResolver(new VersionResourceResolver()

// .addFixedVersionStrategy("v1.0.1", "/**")

.addContentVersionStrategy("/**")

);

}

}

2.Thymeleaf页面引用

正常的abc.js浏览器加载时会变成abc-83fb8c4d9199dce0224da0206423106f.js(md5)或/v1.0.1/abc.js(手动添加版本号)

<!-- css引用 -->

<link th:href="@{/abc.css}" rel="stylesheet">

<link th:href="@{/css/def.css}" rel="stylesheet">

<!-- js引用 -->

<script th:src="@{/abc.js}"></script>

<script th:src="@{/js/def.js}"></script>

3.BUG修复

以上方式一般情况下就可以达到需求效果,但是在实际开发过程中由于相对复杂的场景导致以上配置可能会不生效,通过添加以下Bean就能解决

@SpringBootApplication

public class XxxApplication {

public static void main(String[] args) {

SpringApplication.run(XxxApplication.class, args);

}

/**

* 功能描述

* <p>

* 添加静态资源md5版本控制

* </p>

*

* @author wandoupeas

* @date 2019-11-06

* @since 2019-11-06

*/

@Bean

public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {

return new ResourceUrlEncodingFilter();

}

}

本文使用OpenWrite进行编写

以上是 Springboot2thymeleafjs/css版本控制 的全部内容, 来源链接: utcz.com/z/510476.html

回到顶部