SpringBoot靜態(tài)資源映射規(guī)則淺析
1. 靜態(tài)資源映射規(guī)則
在項目中雙擊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()
方法可以發(fā)現(xiàn)變量 staticLocations 的取值如下:
"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"
即項目運行時會到上述路徑下尋找靜態(tài)資源,也可以自定義靜態(tài)資源路徑,需在 application.properties 中配置:
spring.resources.static-locations=classpath:/folder1/,classpath:/folder2/
注:一旦自定義了靜態(tài)文件夾的路徑,則默認的靜態(tài)資源路徑就會失效。
2. 歡迎頁
靜態(tài)資源路徑下的 index.html 文件會被/**
所映射,當(dāng)訪問http://localhost:8080/時 ,會默認映射到靜態(tài)資源文件夾下的 index.html。
遇到的問題
新建 index.html 文件后運行項目,訪問http://localhost:8080/時會頁面錯誤:
控制臺報如下錯誤:
Spring Boot 的版本是 2.7.8,tomcat 的版本是 9.0.71。Spring Boot 通過內(nèi)嵌的 tomcat 來運行項目,但需要依靠本地的 java 環(huán)境,我本地的 java 版本是 Java 1.8.0_261(即 java 8 版本),一般 java 8 和 tomcat 8.x.x 配套使用,這里可能是版本沖突導(dǎo)致的問題。將項目的 SDK 改為jbr-11 JetBrains Runtime version 11.0.10
即可解決問題:
JetBrains Runtime 可以認為是 IDEA 自帶的 java 運行環(huán)境。
到此這篇關(guān)于SpringBoot靜態(tài)資源映射規(guī)則淺析的文章就介紹到這了,更多相關(guān)SpringBoot靜態(tài)資源映射內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot服務(wù)上實現(xiàn)接口限流的方法
這篇文章主要介紹了SpringBoot服務(wù)上實現(xiàn)接口限流的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10SpringBoot+MyBatis實現(xiàn)MD5加密數(shù)據(jù)庫用戶密碼的方法
MD5技術(shù)主要用于對用戶密碼加密,增加賬戶的安全性,他具有不可逆的特性,不會被輕易解密,這篇文章給大家介紹SpringBoot+MyBatis實現(xiàn)MD5加密數(shù)據(jù)庫用戶密碼的方法,感興趣的朋友跟隨小編一起看看吧2024-03-03java 根據(jù)前端返回的字段名進行查詢數(shù)據(jù)
本文介紹了如何在Java中使用SpringDataJPA實現(xiàn)動態(tài)查詢功能,以便根據(jù)前端傳遞的字段名動態(tài)構(gòu)建查詢語句,通過創(chuàng)建實體類、Repository接口、構(gòu)建動態(tài)查詢、在Service層和Controller中使用動態(tài)查詢,實現(xiàn)了前后端分離架構(gòu)中的靈活查詢需求2024-11-11java Socket實現(xiàn)網(wǎng)頁版在線聊天
這篇文章主要為大家詳細介紹了java Socket實現(xiàn)網(wǎng)頁版在線聊天具體代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05