首頁效果:
於是在代碼裏面尋找原因,難道是靜態資源目錄寫的有問題?
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);
}