spring boot 配置静态路径(404出现的坑)

一 前言

最近有个项目,需要上传一个zip文件(zip文件就是一堆的html压缩组成)的压缩文件,然后后端解压出来,用户可以预览上传好的文件。

查看资料,spring boot对静态文件,可以通过配置路径的方式来实现。

rootPath 我本地调试环境的是 : d:/file/

测试环境的是 /data/file

/**” :表示访问路径,根据实际情况指定(这里表示/file/下的所有路径)

“file:/d/file/” :表示静态资源在硬盘上的真实存储位置,根据实际情况指定

本地开发是很顺利的,很快就写好了,当部署到测试机的时候,上传的文件,无法预览,一直提示404。

初步怀疑是2个问题

1.权限问题检查了文件也正常写入和读出,排除权限的问题
2文件编码的问题

我上传的有中文目录,也许是中文无法映射出来,后来,上传了全英文的文件,也是无法预览,实在是吐血了,

都无法解决我的问题

实在是想不到什么问题,考虑了能否远程debug下呢

我配置了 ide debug,远程 java启动命令

ide 配置

其中 host 是我本地的ip地址

启动好远程服务,打好断点,然后debug

经过几个小时的spring debug 源码,终于发现了我的路径少了个 / 号, spring boot 对于 不是/结尾的处理,直接忽略了,找到了上级目录去了,这就造成一直404的原因

1.开发容易,调试难,一定要注意配置要小心点

2.spring boot 要多熟悉下,有问题,也可以debug来解决

Original: https://www.cnblogs.com/tomj2ee/p/15893981.html
Author: tomj2ee
Title: spring boot 配置静态路径(404出现的坑)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570898/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 再也不用担心重装VSCode了

    1. 关于Settings Sync插件 Setings Sync插件可以同步你的VSCode配置到 Github Gist,当你更换电脑重新搭建VSCode环境的时候,直接使用该…

    Java 2023年6月7日
    075
  • 什么是系统调用

    应用程序通过 系统调用请求操作系统的服务,系统中的各种资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方…

    Java 2023年6月6日
    078
  • JPA作持久层操作

    JPA(Hibernate是jpa的实现) jpa是对实体类操作,从而通过封装好的接口直接设置数据库的表结构。虽然jpa可以直接通过编写java代码来操作数据库表结构,避免了sql…

    Java 2023年6月13日
    077
  • 技术管理杂谈

    人非机器。 我们可以编写一段程序,让机器严格按照我们的预期运行,程序写得好的机器够牛逼的话,能保它跑个几十年无需干预。 但是人不行。 人有别于机器在于他的感性以及模糊的理性。 人会…

    Java 2023年5月30日
    071
  • JAVA入门基础_从零开始的培训_JAVAWEB

    1、前端知识的学习 HTML(Hyper Text Markup Language)超文本标记语言 常见标签 文字、段落标签 图片标签 列表标签 表单 a标签 Tomcat新建项目…

    Java 2023年6月9日
    0105
  • Elasticsearch 入门实战(1)–简介

    Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎;本文主要介绍其基本概念。 1、概述 Elasticsearch 是一个分布式、高扩展、高实时的搜…

    Java 2023年6月16日
    075
  • python闭包和装饰器

    本文目录: 闭包的解析和用法 函数式装饰器 类装饰器 一、闭包 闭包是一种函数,从形式上来说是函数内部定义(嵌套)函数,实现函数的扩展。在开发过程中,考虑到兼容性和耦合度问题,如果…

    Java 2023年6月14日
    070
  • spring的自动注入

    Spring自动注入 spring的ioc 在刚开始学习spring的时候肯定都知道spring的两个特点:ioc,aop,控制反转和切面编程,这篇就只说说ioc ioc是什么:在…

    Java 2023年6月6日
    073
  • 【Java面试】什么是令牌桶限流算法

    当面试官问你,”什么是令牌桶限流算法”!你知道要怎么回答,才能获得面试官的青睐吗?大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,面试官…

    Java 2023年6月16日
    090
  • 还有人不懂布隆过滤器吗?

    还有人不懂布隆过滤器吗? 1.介绍 我们在使用缓存的时候都会不可避免的考虑到如何应对 缓存雪&#x5D29…

    Java 2023年6月8日
    0106
  • 使用Flutter开发的抖音国际版

    简介 最近花了两天时间研究使用Flutter开发一个抖音国际版. 个人感觉使用Flutter开发app快得不要不要的额. 两天就基本可以开发个大概出来. 最主要是热重载,太方便实时…

    Java 2023年6月7日
    086
  • java常用书籍下载

    目录 《码出高效:Java开发手册》 《重构改善既有代码设计》 《深入理解Java虚拟机(第二版-带目录)》 《从Paxos到Zookeeper 分布式一致性原理与实践》 《Jav…

    Java 2023年5月29日
    081
  • 不知名二本应届生的求职路

    本人计科某不知名二本学校,大学方向是嵌入式,在此记录下自己大四秋招和春招的过程. 先说一下本人的基本情况,专业计科(嵌入式).由于对于嵌入式不是很感冒,所以除了完成培养计划的内容之…

    Java 2023年6月14日
    091
  • JAVA_OPTS设置

    JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。 JVM:JAVA_OPTS=”-server -Xms2048m -Xmx2048m -Xss51…

    Java 2023年5月29日
    079
  • AOP面向切面

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是…

    Java 2023年6月5日
    0101
  • 旅游线路收藏

    判断当前登录用户是否收藏过该线路 当页面加载完成后,发送ajax请求,获取用户是否收藏的标记, 根据标记,展示不同的按钮样式 后台代码 RouteServlet类: /** * 判…

    Java 2023年6月6日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球