首页效果:
于是在代码里面寻找原因,难道是静态资源目录写的有问题?
Spring Boot的默认配置方式,提供的静态资源映射如下:
- classpath:/META-INF/resources
- classpath:/resources
- classpath:/static
- classpath:/public
根据以上静态资源配置比对项目也没有任何问题,那问题出在哪里?百思不得其解,但是还得继续寻找问题的根源。
既然静态资源配置没有问题,难道是被拦截器拦截了?打开WebMvcConfig文件,如图:
由于WebMvcConfigurerAdapter过期,开始使用WebMvcConfigurationSupport,别的代码完全一样。于是有个想法先将代码修改为如下:
此时奇迹发生了,页面正常显示:
那么问题来了:继承WebMvcConfigurationSupport如何解决js、css无法加载呢?
又是一番寻找,终于发现了线索:
是因为springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法,于是只需要添加如下代码就可完美解决.
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/resources/")
.addResourceLocations("classpath:/static/").addResourceLocations("classpath:/public/");
super.addResourceHandlers(registry);
}