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

news2024/9/29 1:28:31

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

  • Windows中使用SpringBoot addResourceHandlers代理静态资源访问
  • Linux中使用SpringBoot addResourceHandlers代理静态资源访问
    • 修改路径问题
    • 一度以为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包;这个问题连续搞了一天,晚上才解决(也有可能是鄙人太菜了,呜呜呜~)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

概念解读稳定性保障

什么是稳定百度百科关于稳定的定义&#xff1a;“稳恒固定&#xff1b;没有变动。”很明显这里的“稳定”是相对的&#xff0c;通常会有参照物&#xff0c;例如 A 车和 B 车保持相同速度同方向行驶&#xff0c;达到相对平衡相对稳定的状态。那么软件质量的稳定是指什么呢&#…

区块链对于底层技术的助力和改造,导致了如此多的新技术、新模式的出现

现在&#xff0c;区块链就在经历这样一种状态。是的&#xff0c;我们现在看到的是&#xff0c;以人工智能为代表的诸多新技术的不断地成熟和落地&#xff0c;我们现在看到的是&#xff0c;以元宇宙为代表的诸多新模式的不断衍生和出现。但是&#xff0c;如果深度分析&#xff0…

对称锥规划:锥与对称锥

文章目录对称锥规划&#xff1a;锥与对称锥锥的几何形状常用的指向锥Nonnegative Orthant二阶锥半定锥对称锥对称锥的平方操作对称锥的谱分解对称锥的自身对偶性二阶锥规划SOCP参考文献对称锥规划&#xff1a;锥与对称锥 本文主要讲锥与对称锥的一些基本概念。 基础预备&…

C++回顾(四)—— 类的封装

4.1 面向对象编程介绍 4.1.1 什么是面向对象 面向将系统看成通过交互作用来完成特定功能的对象的集合。每个对象用自己的方法来管理数据。也就是说只有对象内部的代码能够操作对象内部的数据。 4.1.2 面向对象的特点 &#xff08;1&#xff09;抽象的作用 抽象是人们认识事…

【XXL-JOB】XXL-JOB的搭建和使用

【XXL-JOB】XXL-JOB的搭建和使用 文章目录【XXL-JOB】XXL-JOB的搭建和使用1. 任务调度1.1 实现任务调度1.1.1 多线程实现1.1.2 Timer实现1.1.3 ScheduledExecutor实现2. 分布式任务调度2.1 采用分布式的原因3. XXL-JOB3.1 XXL-JOB介绍3.2 执行流程4. 搭建XXL-JOB4.1 创建数据库…

Ep_操作系统面试题-操作系统的分类

答案 单体系统 整个操作系统是以程序集合来编写的&#xff0c;链接在一块形成一个二进制可执行程序&#xff0c;这种系统称为单体系统。 分层系统 每一层都使用下面的层来执行其功能。 微内核 微内核架构的内核只保留最基本的能力&#xff0c;把一些应用放到了用户空间 客户-…

BCN点击试剂1263166-90-0,endo BCN-OH,环丙烷环辛炔羟基

endo BCN-OH基础产品数据&#xff1a;CAS号&#xff1a;1263166-90-0中文名&#xff1a;环丙烷环辛炔甲醇&#xff0c;环丙烷环辛炔羟基英文名&#xff1a;endo BCN-OH 结构式&#xff08;Structural&#xff09;&#xff1a;详细产品数据&#xff1a;Molecular formula&#x…

CVPR 2023 | 基础模型推动语义分割的弱增量学习

前言语义分割的弱增量学习&#xff08;WILSS&#xff09;目的是学习从廉价和广泛可用的图像级标签中分割出新的类别&#xff0c;但图像级别的标签不能提供定位每个片段的细节。为了解决该问题&#xff0c;本文提出了一个新颖且数据高效的框架&#xff08;FMWISS&#xff09;。该…

IM即时通讯开发实时消息的“时序性”与“一致性”

我们都知道&#xff0c;一个典型的分布式系统中&#xff0c;很多业务场景都需要考虑消息投递的时序&#xff0c;例如&#xff1a;IM中单聊消息投递&#xff1a;保证发送方发送顺序与接收方展现顺序一致&#xff1b;IM中群聊消息投递&#xff1a;保证所有接收方展现顺序一致&…

如何审计一个智能合约

智能合约审计用于整个 DeFi 生态系统&#xff0c;通过对协议代码的深入审查&#xff0c;可以帮助解决识别错误、低效代码以及这些问题。智能合约具有不可篡改的特点&#xff0c;这使得审计成为任何区块链项目安全流程的关键部分。 代码审计对任何应用程序都很重要&#xff0c;…

【ES】Elasticsearch核心基础概念:文档与索引

es的核心概念主要是&#xff1a;index(索引)、Document(文档)、Clusters(集群)、Node(节点)与实例&#xff0c;下面我们先来了解一下Document与Index。 RESTful APIs 在讲解Document与Index概念之前&#xff0c;我们先来了解一下RESTful APIs&#xff0c;因为下面讲解Documen…

Antd Form校验没有效果的问题

问题是这样的&#xff1a; 环境&#xff1a; antd4.x 现象&#xff1a; 如上页面 出现页面后直接点击按钮触发校验&#xff0c;不会有校验提示&#xff0c;页面没有任何反应假如只有其中任何一个&#xff0c;校验正常 比如&#xff0c;没有“模型编码”&#xff0c;只有“模…

变分推断 (Variational Inference) 解析

前言 如果你对这篇文章可感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 变分推断 在贝叶斯方法中&#xff0c;针对含有隐变量的学习和推理&#xff0c;通常有两类方式&#xff0c;其一是马尔可…

Python爬虫:如何自动化下载网站图片

目录 Requests 访问页面 XPath 定位 JSON 对象 如何使用 XPath 自动下载百度图片 Selenium 库模拟浏览器 Requests 访问页面 Requests 是 Python HTTP 的客户端库&#xff0c;编写爬虫的时候都会用到&#xff0c;编写起来也很简单。它有两种访问方式&#xff1a;Get 和 P…

王道操作系统课代表 - 考研计算机 第五章 输入输出管理 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记&#xff0c;以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助&#xff01;&#xff01;&#xff01; 关于对 “输入输出管理” 章节知识点总结的十分全面&#xff0c;涵括了《操作系统》课程里的…

基于.NET 7 + iView 的前后端分离的通用后台管理系统开源框架

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 今天给大家推荐一套前后端分离通用后台管理系统开源框架。 项目简介 这是基于.Net 7 Vue.js开发的、前后端分离框架&#xff0c;前端UI框架采用iView&#xff0c;该项目只有基础功能模块&#xff0c;不包含具…

VMware虚拟机安装centos(超详细图文教程)

1、centos下载 Ubuntu下载地址&#xff1a;点这里 下载不成功的也可关注公众号获取&#xff1a;待更新 2、打开VMware VMware安装过程&#xff1a;待更新 2.1 创建新的虚拟机 2.2 一般情况都会选择典型&#xff08;如果这里有需要选择自定义的一般也不会看教程了&#xff…

【Spark分布式内存计算框架——Spark Streaming】10. 应用案例:百度搜索风云榜(中)实时数据ETL存储

5.3 实时数据ETL存储 实时从Kafka Topic消费数据&#xff0c;提取ip地址字段&#xff0c;调用【ip2Region】库解析为省份和城市&#xff0c;存储到HDFS文件中&#xff0c;设置批处理时间间隔BatchInterval为10秒&#xff0c;完整代码如下&#xff1a; package cn.itcast.spar…

华为机试题:HJ94 记票统计(python)

文章目录&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;Python3实现&#xff08;3&#xff09;知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

linux和windows中安装emqx消息服务器

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号雄雄的小课堂 现在是&#xff1a;2023年3月1日21:53:55 前言 最近几天看了下mqtt&#xff0c;通过不断的搜索资料&#xff0c;也将mqtt集成到项目中&#xff0c;跑了个demo运行&#xff0c;和预想中的差不多&#x…