【Spring Boot】addResourceHandlers(ResourceHandlerRegistry registry)中文无法访问

本文档主要介绍了在SpringBoot中配置静态资源目录时遇到的中文路径404错误。问题源于URL解码设置,通过调整UrlPathHelper的配置,设置为不decodeURL并指定默认编码为UTF-8,解决了中文路径无法访问的问题。同时提供了使用AntPathMatcher作为匹配策略的备选解决方案。注意,此问题可能与SpringBoot版本有关。
摘要由CSDN通过智能技术生成

一 问题复现

使用springboot配置映射静态资源目录后,英文和数字可以正常进行访问,但是中文就提示404

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/file/video/**").addResourceLocations(props.getVideoFolder());
	}

二 解决办法

原文传送门,有分析过程

一 UrlPathHelper 设置不decodeurl

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        UrlPathHelper urlPathHelper=new UrlPathHelper();
        urlPathHelper.setUrlDecode(false);
        urlPathHelper.setDefaultEncoding(StandardCharsets.UTF_8.name());
        configurer.setUrlPathHelper(urlPathHelper);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {  registry.addResourceHandler("/files/**").addResourceLocations("file:E:/FileUpload/HmiInterface/");
    }
}

二 使用原来的AntPathMatcher (推荐)

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

版本问题,最为致命

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值