2019年12月15日   Spring, 码农之路   4,503 次浏览
废话不多说,既然你看到了这里,说明你曾经尝试过使用?v=1.0这种方式来解决这个问题,那么SpringBoot有没有更好的方式来解决呢?答案是肯定的。
使用方法也很简单,配置类和配置文件两种方式,如下:
@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 静态文件版本管理(MD5方式)
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/").resourceChain(false)
.addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"));
}
}
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.paths=/js/lib/
spring.resources.chain.strategy.fixed.version=v12
如果配置完成后你的页面能够正常显示如下内容则表示OK了,下面的内容不需要看了。
<link href="/css/spring-2a2d595e6ed9a0b24f027f2b63b134d6.css"/>
但是因为srpingboot版本或项目配置等等各种原因,你的配置还没生效。具体现象和questions-53784406描述一致。解决方法SPR-15012也说明了,就是添加ResourceUrlEncodingFilter,如下:
@Configuration
public class ThymeleafConfig {
@Bean
public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {
return new ResourceUrlEncodingFilter();
}
}
注意:这段ResourceUrlEncodingFilter不能放到WebMvcConfigurer配置类里。
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。