SpringBoot代理訪問靜態資源400 404
背景:pdf文件上傳到linux服務器上,使用SpringBoot代理訪問
問題:訪問過程中可能會出現400、404問題
前提:保證有文件,并且文件路徑正確
SpringBoot如何配置靜態資源代理,大家可以網上找一找,或者也可以參考我的另一篇博客
SpringBoot addResourceHandlers 代理靜態資源
1、路徑純英文
此種情況目前沒有遇到過問題
2、路徑包含中文
此種情況可能會出現404問題
很大程度是中文亂碼造成,配置一下服務器中文編碼,記住配置完后重啟jar,也可以參考上面提到的博客
3、路徑中包含特殊字符
" < > [ \ ] ^ `` { | }
此種情況可能會出現400
在SpringBoot配置文件中添加處理特殊字符的配置,完美解決
server:tomcat:relaxed-path-chars:- '['- ']'relaxed-query-chars:- '['- ']'
# 如果不配置下面的,將會從400 -> 404錯誤
spring:mvc:pathmatch:matching-strategy: ant_path_matcher
注:我是用的SpringBoot版本:2.7,版本不一定對應配置可能也不一樣,大家按照實際情況設置
ps: 大家還是把問題解決在源頭,上傳文件時保存的文件名以及路徑大家盡可能直接用數字或者字母,這樣就可以最大限度的避免后面的麻煩事,畢竟咱們用的電子設備底層技術是外國滴,所以在涉及到一些賬戶、路徑、名稱等盡量用字母數字