您好,登錄后才能下訂單哦!
這篇文章主要介紹了SpringBoot靜態資源映射規則是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SpringBoot靜態資源映射規則是什么文章都會有所收獲,下面我們一起來看看吧。
在項目中雙擊shift
或ctrl+N
搜索WebMvcAutoConfiguration.class
文件,文件中的addResourceHandlers方法如下:
public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); } else { this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/"); this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> { registration.addResourceLocations(this.resourceProperties.getStaticLocations()); if (this.servletContext != null) { ServletContextResource resource = new ServletContextResource(this.servletContext, "/"); registration.addResourceLocations(new Resource[]{resource}); } }); } }
隨后進入到getStaticLocations()
方法可以發現變量 staticLocations 的取值如下:
"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"
即項目運行時會到上述路徑下尋找靜態資源,也可以自定義靜態資源路徑,需在 application.properties 中配置:
spring.resources.static-locations=classpath:/folder1/,classpath:/folder2/
注:一旦自定義了靜態文件夾的路徑,則默認的靜態資源路徑就會失效。
靜態資源路徑下的 index.html 文件會被/**
所映射,當訪問http://localhost:8080/時 ,會默認映射到靜態資源文件夾下的 index.html。
遇到的問題
新建 index.html 文件后運行項目,訪問http://localhost:8080/時會頁面錯誤:
控制臺報如下錯誤:
Spring Boot 的版本是 2.7.8,tomcat 的版本是 9.0.71。Spring Boot 通過內嵌的 tomcat 來運行項目,但需要依靠本地的 java 環境,我本地的 java 版本是 Java 1.8.0_261(即 java 8 版本),一般 java 8 和 tomcat 8.x.x 配套使用,這里可能是版本沖突導致的問題。將項目的 SDK 改為jbr-11 JetBrains Runtime version 11.0.10
即可解決問題:
JetBrains Runtime 可以認為是 IDEA 自帶的 java 運行環境。
關于“SpringBoot靜態資源映射規則是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SpringBoot靜態資源映射規則是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。