Springboot2 thymeleaf js/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 {

    /**
     * 功能描述
     * 

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

* * @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(手动添加版本号)








3.BUG修复

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

@SpringBootApplication
public class XxxApplication {

    public static void main(String[] args) {

        SpringApplication.run(XxxApplication.class, args);

    }

    /**
     * 功能描述
     * 

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

* * @author wandoupeas * @date 2019-11-06 * @since 2019-11-06 */ @Bean public ResourceUrlEncodingFilter resourceUrlEncodingFilter() { return new ResourceUrlEncodingFilter(); } }

本文使用OpenWrite进行编写

你可能感兴趣的:(Springboot2 thymeleaf js/css 版本控制)