连接:
http://www.parrottemplate.com/index.php/2021/06/30/webmvcconfigurationsupport%e9%85%8d%e7%bd%ae%e7%b1%bb%e4%bc%9a%e8%a6%86%e7%9b%96yml%e4%b8%ad%e7%9a%84mvc%e9%85%8d%e7%bd%ae/
首先先介绍一下当前项目中发生的事情,由于当前的spring boot项目需要做些html分享功能,因此在项目中引用了:thymeleaf:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
相对应的在 resources资源文件中添加了:templates 和 static,页面放在templates,js、css、图片等放在static,然后通过yml配置静态资源访问路径:
spring:
mvc: # 静态资源配置 默认值为 /**
static-path-pattern: /static/**
resources: # 默认值为 classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
static-locations: classpath:/static/
在此配置下html能正常访问,页面也能正常出现:
但是后来由于业务变更需要加上一些链路配置,故在config中配置了webConfig并且继承:WebMvcConfigurationSupport
然后灾难就发生了,重新访问刚刚的页面发现js、css、image等资源全部访问不到
后来我想是啥原因呢 看到 WebMvcConfigurationSupport,联想到yml中配置的也是mvc两者之间是否有一定联系,后者的配置吧前者的覆盖掉了,于是我有重新在webconfig中添加了一边mvc静态资源路径配置:
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
重启后发现果然好了。