SpringBoot資源文件的存放位置設(shè)置方式
SpringBoot默認(rèn)的存放靜態(tài)資源文件的位置是:
注:SpringBoot中的src/main/resources/資源文件夾對(duì)應(yīng)classpath:。
默認(rèn)存放靜態(tài)資源文件的位置
在SpringBoot項(xiàng)目中的文件夾位置為:
即:搜索文件夾的優(yōu)先順序和數(shù)組中的順序一致。
當(dāng)我們?cè)L問(wèn)IP地址:端口號(hào)/時(shí),就相當(dāng)于訪問(wèn)到了這四個(gè)文件夾。
如:訪問(wèn):localhost:8080/123.jpg時(shí),就會(huì)先去看src/main/resources資源文件夾下的META-INF下的resoures文件夾中是否有123.jpg,沒(méi) 有的話再看src/main/resources資源文件夾下的resoures文件夾中是否有123.jpg,沒(méi)有的話再看src/main/resources資源文件夾下的static文件夾中是否有123.jpg,沒(méi)有的話再看src/main/resources資源文件夾下的public文件夾中是否有123.jpg。
手動(dòng)配置其搜索資源文件的文件夾位置
把文件放在SpringBoot項(xiàng)目下的classpath中
方式一:通過(guò)配置類
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; /** * 主動(dòng)設(shè)置URL匹配路徑 * * @author JustryDeng * @date 2018年8月4日 上午1:36:38 */ @Configuration public class MyURLPatternConfiguration extends WebMvcConfigurationSupport { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/fileData/**").addResourceLocations("classpath:/myFile/"); super.addResourceHandlers(registry); } }
此時(shí):訪問(wèn)IP地址:端口號(hào)/fileData/時(shí),就相當(dāng)于到了src/main/resources資源文件夾下的myFile文件夾中了,圖示說(shuō)明:
注:此時(shí)默認(rèn)的四個(gè)文件夾都失效了,如果想讓默認(rèn)的四個(gè)文件夾依然有效,那么可以在配置類中多次通過(guò).addResourceHandler添加指定那四個(gè)文件夾。
方式二:通過(guò)配置文件
# 設(shè)置當(dāng)URI為/fileData/**時(shí),才進(jìn)過(guò)靜態(tài)資源 # 注:如果設(shè)置為/**,那么表示任何訪問(wèn)都會(huì)經(jīng)過(guò)靜態(tài)資源路徑 spring.mvc.static-path-pattern=/fileData/** # 自定義路徑 # 注:自定義路徑時(shí),默認(rèn)的四個(gè)文件夾下中的“META-INF下的resoures文件夾”仍然有效,其他三個(gè)文件夾失效 # (此時(shí):訪問(wèn)ip:端口號(hào)/fileData/時(shí),相當(dāng)于訪問(wèn)到了 “自定義的文件夾”和 “META-INF下的resoures文件夾”); # 注:搜索文件時(shí),自定義的文件夾的優(yōu)先級(jí)要高于默認(rèn)的四個(gè)文件夾 spring.resources.static-locations=classpath:/myFile/ # 提示:如果我們顯式地把自定義文件夾 和 默認(rèn)的四個(gè)文件夾都寫(xiě)出來(lái),那么都會(huì)有效(此時(shí),優(yōu)先級(jí) 從左至右 依次降低) #spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/myFile/
把文件放在項(xiàng)目jar包之外的服務(wù)器磁盤(pán)中的某個(gè)文件夾中
方式一:通過(guò)配置類
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; /** * 主動(dòng)設(shè)置URL匹配路徑 * * @author JustryDeng * @date 2018年8月4日 上午1:36:38 */ @Configuration public class MyURLPatternConfiguration extends WebMvcConfigurationSupport { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 指定到D盤(pán)下的myFile文件夾 // 注:如果是Linux的話,直接指定文件夾路徑即可,不需要指定哪個(gè)盤(pán)(Linux就一個(gè)可用盤(pán)) registry.addResourceHandler("/fileData/**").addResourceLocations("file:D:/myFile/"); super.addResourceHandlers(registry); } }
此時(shí):我們?cè)L問(wèn)IP地址:端口號(hào)/fileData/時(shí),就相當(dāng)于到了服務(wù)器D盤(pán)下的myFile文件夾中了。
注:此時(shí)默認(rèn)的四個(gè)文件夾都失效了,如果想讓默認(rèn)的四個(gè)文件夾依然有效,那么可以在配置類中通過(guò) .addResourceHandler多次添加四個(gè)文件夾。
方式二:通過(guò)配置文件
# 設(shè)置當(dāng)URI為/fileData/**時(shí),才進(jìn)過(guò)靜態(tài)資源 # 注:如果設(shè)置為/**,那么表示任何訪問(wèn)都會(huì)經(jīng)過(guò)靜態(tài)資源路徑 spring.mvc.static-path-pattern=/fileData/** # 自定義路徑 # 注:自定義路徑時(shí),默認(rèn)的四個(gè)文件夾下中的“META-INF下的resoures文件夾”仍然有效,其他三個(gè)文件夾失效 # (此時(shí):訪問(wèn)ip:端口號(hào)/fileData/時(shí),相當(dāng)于訪問(wèn)到了 “自定義的文件夾”和 “META-INF下的resoures文件夾”); # 注:搜索文件時(shí),自定義的文件夾的優(yōu)先級(jí)要高于默認(rèn)的四個(gè)文件夾 spring.resources.static-locations=file:D:/myFile/ # 提示:如果我們顯式地把自定義文件夾 和 默認(rèn)的四個(gè)文件夾都寫(xiě)出來(lái),那么都會(huì)有效(此時(shí),優(yōu)先級(jí) 從左至右 依次降低) #spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:D:/myFile/
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)簡(jiǎn)易計(jì)算器(逆波蘭表達(dá)式)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)易計(jì)算器,逆波蘭表達(dá)式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07IDEA使用MyBatisCodeHelperPro來(lái)generator代碼的詳細(xì)教程
這篇文章主要介紹了IDEA使用MyBatisCodeHelperPro來(lái)generator代碼的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Servlet從入門(mén)到精通(超級(jí)詳細(xì)!)
在JavaWeb項(xiàng)目中,處理請(qǐng)求和發(fā)送響應(yīng)的過(guò)程是由一種叫做Servlet 的程序來(lái)完成的,并且 Servlet 是為了解決實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面而衍生的東西,下面這篇文章主要給大家介紹了關(guān)于Servlet從入門(mén)到精通的相關(guān)資料,需要的朋友可以參考下2022-03-03SpringCloud Zuul服務(wù)功能與使用方法解析
這篇文章主要介紹了SpringCloud Zuul服務(wù)功能與使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05MybatisPlus+Postgresql整合的幾個(gè)坑及解決
這篇文章主要介紹了MybatisPlus+Postgresql整合的幾個(gè)坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03JVM進(jìn)階教程之字段訪問(wèn)優(yōu)化淺析
這篇文章主要給大家介紹了關(guān)于JVM進(jìn)階教程之字段訪問(wèn)優(yōu)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01springcloud3 Sentinel的搭建及案例操作方法
Sentinel是分布式系統(tǒng)流量控制的哨兵,阿里開(kāi)源的一套服務(wù)容錯(cuò)的綜合性解決方案,這篇文章主要介紹了springcloud3 Sentinel的搭建以及案例操作,需要的朋友可以參考下2023-01-01