spring?boot如何配置靜態(tài)路徑詳解(404出現(xiàn)的坑)
一 前言
最近有個項目,需要上傳一個zip文件(zip文件就是一堆的html壓縮組成)的壓縮文件,然后后端解壓出來,用戶可以預(yù)覽上傳好的文件。
查看資料,spring boot對靜態(tài)文件,可以通過配置路徑的方式來實現(xiàn)。
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Resource
private PermissionInterceptor permissionInterceptor;
@Resource
private CheckOpenInterceptor checkOpenInterceptor;
@Value("${dataDir}")
private String rootPath;
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info(">>addResourceHandlers>>"+"file:"+rootPath);
registry.addResourceHandler("/file/**").addResourceLocations("file:"+rootPath);
super.addResourceHandlers(registry);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(permissionInterceptor).addPathPatterns("/file/**");
super.addInterceptors(registry);
}
}rootPath 我本地調(diào)試環(huán)境的是 : d:/file/
測試環(huán)境的是 /data/file
/**” :表示訪問路徑,根據(jù)實際情況指定(這里表示/file/下的所有路徑)
"file:/d/file/" :表示靜態(tài)資源在硬盤上的真實存儲位置,根據(jù)實際情況指定
本地開發(fā)是很順利的,很快就寫好了,當(dāng)部署到測試機的時候,上傳的文件,無法預(yù)覽,一直提示404。
二 漫長的調(diào)試之路
初步懷疑是2個問題
1.權(quán)限問題檢查了文件也正常寫入和讀出,排除權(quán)限的問題
2文件編碼的問題
我上傳的有中文目錄,也許是中文無法映射出來,后來,上傳了全英文的文件,也是無法預(yù)覽,實在是吐血了,
都無法解決我的問題
實在是想不到什么問題,考慮了能否遠(yuǎn)程debug下呢
我配置了 ide debug,遠(yuǎn)程 java啟動命令
java -agentlib:jdwp=transport=dt_socket,address=5555,server=y,suspend=y -jar myproject.jar
ide 配置

其中 host 是我本地的ip地址
啟動好遠(yuǎn)程服務(wù),打好斷點,然后debug
經(jīng)過幾個小時的spring debug 源碼,終于發(fā)現(xiàn)了我的路徑少了個 / 號, spring boot 對于 不是/結(jié)尾的處理,直接忽略了,找到了上級目錄去了,這就造成一直404的原因
總結(jié)
1.開發(fā)容易,調(diào)試難,一定要注意配置要小心點
2.spring boot 要多熟悉下,有問題,也可以debug來解決
到此這篇關(guān)于spring boot如何配置靜態(tài)路徑的文章就介紹到這了,更多相關(guān)spring boot配置靜態(tài)路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java將GeoHash轉(zhuǎn)化為對應(yīng)的經(jīng)緯度坐標(biāo)實例代碼
這篇文章主要介紹了Java實現(xiàn)將GeoHash轉(zhuǎn)化為對應(yīng)的經(jīng)緯度坐標(biāo)的相關(guān)資料,需要的朋友可以參考下2016-01-01
SpringBoot+mail 輕松實現(xiàn)各類郵件自動推送
在實際的項目開發(fā)過程中,經(jīng)常需要用到郵件通知功能,例如,通過郵箱注冊,郵箱找回密碼,郵箱推送報表等等,實際的應(yīng)用場景非常的多,今天通過這篇文章,我們一起來學(xué)習(xí)如何在 Spring Boot 中快速實現(xiàn)一個自動發(fā)送郵件的功能2024-07-07
maven坐標(biāo)Dependencies和Exclusions的使用
這篇文章主要介紹了maven坐標(biāo)Dependencies和Exclusions的使用,很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Java設(shè)計模式之外觀模式(Facade模式)介紹
這篇文章主要介紹了Java設(shè)計模式之外觀模式(Facade模式)介紹,外觀模式(Facade)的定義:為子系統(tǒng)中的一組接口提供一個一致的界面,需要的朋友可以參考下2015-03-03
JavaWeb中HttpSession中表單的重復(fù)提交示例
這篇文章主要介紹了JavaWeb中HttpSession中表單的重復(fù)提交,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03
java后端把數(shù)據(jù)轉(zhuǎn)換為樹,map遞歸生成json樹,返回給前端(后臺轉(zhuǎn)換)
這篇文章主要介紹了java后端把數(shù)據(jù)轉(zhuǎn)換為樹,map遞歸生成json樹,返回給前端實例(后臺轉(zhuǎn)換),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-01-01
BufferedReader中read()方法和readLine()方法的使用
這篇文章主要介紹了BufferedReader中read()方法和readLine()方法的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04

