springboot如何獲取相對路徑文件夾下靜態(tài)資源的方法
今日遇到一個問題:springboot需要獲取到一個自定義名稱文件夾下的靜態(tài)資源(圖片等),并且文件夾的路徑不在classPath下面,而是一個相對路徑。
一開始使用修改配置文件的方式:
# 配置靜態(tài)資源訪問前綴 spring.mvc.static-path-pattern=*/** # 配置靜態(tài)資源路徑,默認配置失效 spring.resources.static-locations=../upload
發(fā)現(xiàn)并不行,無法解析出相對路徑。
后面通過自定義靜態(tài)資源映射配置類實現(xiàn)了:
@Configuration @EnableConfigurationProperties({ FileHanderProperties.class }) public class FileHandleConfig extends WebMvcConfigurerAdapter { @Autowired private FileHanderProperties fileHanderProperties; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(fileHanderProperties.getResource()) .addResourceLocations("file:" + fileHanderProperties.getFileDir()+"http://"); super.addResourceHandlers(registry); } }
然后再在配置文件中配置
通過自定義的配置文件讀取類fileHanderProperties獲取配置的參數(shù),這樣就可以獲取到相對路徑中的靜態(tài)資源了。在瀏覽器中直接輸入url,就可以得到圖片。
關(guān)鍵點:
1.addResourceLocations 里面要加前綴"file:" ,這樣才能獲取到自定義目錄下的文件。用"classpath:"只能獲取到classpath下的資源;
2.靜態(tài)資源訪問前綴 (即addResourceHandler內(nèi)的參數(shù))要寫成*/**,這樣才可以獲取到upload文件夾下所有的文件(包括upload文件夾里面的文件夾如imgupload里的資源,只要在url里多加/imgupload),而且在url輸入的時候可以不用寫upload (如果你想寫,就把前綴改為 upload/** ,這樣就必須在url里寫上upload才能獲取到資源);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot新建項目pom.xml文件第一行報錯的解決
這篇文章主要介紹了springboot新建項目pom.xml文件第一行報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01SpringBoot開發(fā)技巧之如何處理跨域請求CORS
CORS(Cross-Origin Resource Sharing)"跨域資源共享",是一個W3C標(biāo)準(zhǔn),它允許瀏覽器向跨域服務(wù)器發(fā)送Ajax請求,打破了Ajax只能訪問本站內(nèi)的資源限制2021-10-10SpringBoot集成SSM、Dubbo、Redis、JSP的案例小結(jié)及思路講解
這個案例其實就是SpringBoot集成SSM、Dubbo、Redis、JSP,看起來感覺很繁瑣,其實就是很簡單,下面通過案例分析給大家講解,感興趣的朋友跟隨小編一起看看吧2021-05-05SpringBoot使用CXF集成WebService的方法
這篇文章主要介紹了SpringBoot使用CXF集成WebService的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Java并發(fā)編程學(xué)習(xí)之ThreadLocal源碼詳析
這篇文章主要給大家介紹了關(guān)于Java并發(fā)編程學(xué)習(xí)之源碼分析ThreadLocal的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06