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)文章
使用Java根據(jù)文件路徑下載zip文件到本地代碼示例
在開發(fā)過程中我們會遇到需要對文件進行壓縮并下載的功能需求,這篇文章主要給大家介紹了關(guān)于如何使用Java根據(jù)文件路徑下載zip文件到本地的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-03-03
Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式
這篇文章主要介紹了Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Springboot項目升級2.2.x升至2.7.x的示例代碼
本文主要介紹了Springboot項目升級2.2.x升至2.7.x的示例代碼,會有很多的坑,具有一定的參考價值,感興趣的可以了解一下2023-09-09
詳解基于MybatisPlus兩步實現(xiàn)多租戶方案
這篇文章主要介紹了詳解基于MybatisPlus兩步實現(xiàn)多租戶方案,本文分兩步,通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
springboot加載命令行參數(shù)ApplicationArguments的實現(xiàn)
本文主要介紹了springboot加載命令行參數(shù)ApplicationArguments的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04

