javascript
Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源
問題描述
自定義Web配置類后無法訪問?/static文件夾下靜態資源。
已加相關依賴包。
官方文檔
Spring MVC Auto Configuration
Maven
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>問題分析
(1)在src/main/resources/目錄下創建?static文件夾?
(2)在src/main/resources/目錄下創建?resources文件夾?
(3)在src/main/resources/目錄下創建?public文件夾?
(4)在src/main/resources/目錄下創建?META-INF/resources文件夾?
目錄結構圖:?
優先級順序:/META-INF/resources>resources>static>public
Spring Boot 訪問靜態資源的規則在WebMvcAutoConfiguration自動配置類中
在該類下有對資源處理的方法?
默認按照該加載順序,加載靜態資源文件。
Web的自動配置類中
在沒有WebMvcConfigurationSupport.class的情況下,才會使用Spring Boot的Web自動配置
在==@EnableWebMvc==中,通過 @Import 導入了DelegatingWebMvcConfiguration類
而?DelegatingWebMvcConfiguration類 繼承于?WebMvcConfigurationSupport 類,從而導致了 WebMvcAutoConfiguration 類沒有生效。?
?WebMvcConfigurationSupport 類沒有添加任何靜態資源的映射。
?
解決方案
對于功能較少的項目,可以使用 @EnableWebMvc 注解,全面接管Spring Boot對SpringMVC的自動注入,自己來寫SpringMVC 運行所需的一些配置,這樣會減少自動注入帶來的一些無意義性能消耗,可以將WebMvcAutoConfiguration自動配置類中addResourceLocations方法代碼直接覆蓋自定義配置類的addResourceLocations方法,即可解決無法訪問/static文件夾下靜態資源的問題;
對于功能較多的項目,使用Spring Boot推薦的對SpringMVC拓展方法 —— 繼承 WebMvcConfigurer 類,這樣不僅可以實現添加WEB組件,也保留了SpringBoot底層的自動注入。
參考文章
https://blog.csdn.net/qq_34369569/article/details/99292925
https://blog.csdn.net/qq_34797335/article/details/80194137
https://blog.csdn.net/qq_36481052/article/details/79075214
https://www.liangzl.com/get-article-detail-132221.html
https://blog.csdn.net/qq_35299712/article/details/80061532
總結
以上是生活随笔為你收集整理的Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Postman——导出测试接口集合的Co
- 下一篇: Spring Boot——WebMvcC