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: 大家还是把问题解决在源头,上传文件时保存的文件名以及路径大家尽可能直接用数字或者字母,这样就可以最大限度的避免后面的麻烦事,毕竟咱们用的电子设备底层技术是外国滴,所以在涉及到一些账户、路径、名称等尽量用字母数字