SpringBoot addResourceHandlers 代理静态资源无法访问 Java获取linux文件中文名乱码 Linux设置中文字符集

前言:
SpringBoot项目一直放在Windows服务器上运行,一切正常;
后期变动需要转到Linux中,发现之前一直好好的静态资源无法访问,然后开启了一系列无脑百度过程…

Windows中使用SpringBoot addResourceHandlers代理静态资源访问

application.yml配置文件中配两个静态地址

在这里插入图片描述
SpringWebConfig

@Configuration
public class SpringWebConfig implements WebMvcConfigurer {

    @Value("${app.UploadFilePath}")
    private String uploadFilePath;

    @Value("${app.StaticMapping}")
    private String staticMapping;

    @Bean
    public ParameterResolver parameterResolver() {
        return new ParameterResolver();
    }

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
        resolvers.add(new ParameterResolver());
        WebMvcConfigurer.super.addArgumentResolvers(resolvers);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(staticMapping +"/**").addResourceLocations("file:" + uploadFilePath + "/");

    }
}

此种方式通过 项目访问路径拼接/zdzy-file/测试.pdf 即可访问D:/zjugis-upload下的测试.pdf,也就可以在浏览器直接浏览

Linux中使用SpringBoot addResourceHandlers代理静态资源访问

Tips: linux是certos7

先将文件修改为如下
在这里插入图片描述

项目搬到Linux下后,发现404现象
在这里插入图片描述
然后开启百度…

修改路径问题

查找一番后,说有路径问题,开启修改
1、将UploadFilePath最后加/
2、将file后加//
在这里插入图片描述

一度以为Linux不能用这种方式代理静态资源

https://www.656463.com/wenda/SpringydaddResourceHandlersbnzli_300
在这里插入图片描述
不过还得试呀呀呀呀呀呀呀啊啊啊啊啊

文件、文件夹权限

以为是权限问题,但是把文件和文件夹权限全部设置为777,于事无补

拷其他文件放指定目录(希望)

拷了一个文件test.pdf,然后浏览器访问发现正常可以浏览,这最起码排除了linux中无法使用SpringBoot addResourceHandlers代理静态资源。
在这里插入图片描述

中文乱码问题出现

经过同事点拨,发现404问题,是我访问的文件,文件名是中文,导致浏览器访问的是乱码url。
然后我想着这不简单吗,encode一下不就可以了,最后发现还是不行

获取文件列表

经过大佬同事点拨,让我先输出一下文件,看看,输出后,发现确实是乱码问题

在这里插入图片描述

接下来就是服务器中文字符集问题

一通百度
下载中文字符集,安装、配置,这里就不一一演示了,百度上都有
最后结果
在这里插入图片描述
安装好后,配置utf8,/etc/locale.conf(注意我的是centos7,配置路径如此,其他的请按照实际情况配置)
在这里插入图片描述
保存好后,source命令是让配置生效
配置好后,满心欢喜,访问中文文件,404,还是404
直接傻眼
然后把zh开头的几种类型全部设置了一遍
全部都不行…

最后的胜利

写博客时候,忘了是在哪里看的一句话,说修改完字符集后,要重启java程序
OK
又来希望了
设置utf8,重启,NO,404
设置gbk,重启,Yes,Yes,Yes,久违的 pdf 出来了
再次访问文件接口,返回也正常了乐乐乐乐乐了
在这里插入图片描述
注:可能是机器问题:不一定gbk就一定可以,utf8就一定不行,大家多试试,还有修改完记得重启jar包;这个问题连续搞了一天,晚上才解决(也有可能是鄙人太菜了,呜呜呜~)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值