spring boot 配置静态路径
一 前言
最近有个项目,需要上传一个zip文件(zip文件就是一堆的html压缩组成)的压缩文件,然后后端解压出来,用户可以预览上传好的文件。
查看资料,spring boot对静态文件,可以通过配置路径的方式来实现。
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport { @Resource
private PermissionInterceptor permissionInterceptor; @Resource
private CheckOpenInterceptor checkOpenInterceptor; @Value("${dataDir}")
private String rootPath; @Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info(">>addResourceHandlers>>"+"file:"+rootPath);
registry.addResourceHandler("/file/**").addResourceLocations("file:"+rootPath); super.addResourceHandlers(registry);
} @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(permissionInterceptor).addPathPatterns("/file/**");
super.addInterceptors(registry);
} }
rootPath 我本地调试环境的是 : d:/file/
测试环境的是 /data/file
/**” :表示访问路径,根据实际情况指定(这里表示/file/下的所有路径)
"file:/d/file/" :表示静态资源在硬盘上的真实存储位置,根据实际情况指定
本地开发是很顺利的,很快就写好了,当部署到测试机的时候,上传的文件,无法预览,一直提示404。
二 漫长的调试之路
初步怀疑是2个问题
1.权限问题检查了文件也正常写入和读出,排除权限的问题
2文件编码的问题
我上传的有中文目录,也许是中文无法映射出来,后来,上传了全英文的文件,也是无法预览,实在是吐血了,
都无法解决我的问题
实在是想不到什么问题,考虑了能否远程debug下呢
我配置了 ide debug,远程 java启动命令
java -agentlib:jdwp=transport=dt_socket,address=5555,server=y,suspend=y -jar myproject.jar
ide 配置
其中 host 是我本地的ip地址
启动好远程服务,打好断点,然后debug
经过几个小时的spring debug 源码,终于发现了我的路径少了个 / 号, spring boot 对于 不是/结尾的处理,直接忽略了,找到了上级目录去了,这就造成一直404的原因
总结
1.开发容易,调试难,一定要注意配置要小心点
2.spring boot 要多熟悉下,有问题,也可以debug来解决
spring boot 配置静态路径的更多相关文章
- spring boot 配置虚拟静态资源文件
我们实现的目的是:通过spring boot 配置静态资源访问的虚拟路径,可实现在服务器,或者在本地通过:http://ip地址:端口/资源路径/文件名 ,可直接访问文件 比如:我们本地电脑的:E: ...
- Spring boot 默认静态资源路径与手动配置访问路径的方法
这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在application.propertis中配置 ##端口号 ...
- spring boot 开静态资源访问,配置视图解析器
配置视图解析器spring.mvc.view.prefix=/pages/spring.mvc.view.suffiix= spring boot 开静态资源访问application.proerti ...
- Spring Boot中静态资源(JS, 图片)等应该放在什么位置
Spring Boot的静态资源,比如图片应该放在什么位置呢, 如果你放在传统WEB共的类似地方, 比如webapp或者WEB-INF下,你会得到一张示意文件未找到的破碎图片.那应该放哪里呢? 百度一 ...
- Spring Boot 的静态资源处理
做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要 ...
- Spring Boot 配置优先级顺序
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- spring boot 配置注入
spring boot配置注入有变量方式和类方式(参见:<spring boot 自定义配置属性的各种方式>),变量中又要注意静态变量的注入(参见:spring boot 给静态变量注入值 ...
- Spring MVC配置静态资源和资源包
Spring MVC配置静态资源和资源包 本例映射:css目录: pom.xml <properties> <spring.version>4.3.5.RELEASE</ ...
- spring boot配置springMVC拦截器
spring boot通过配置springMVC拦截器 配置拦截器比较简单, spring boot配置拦截器, 重写preHandle方法. 1.配置拦截器: 2重写方法 这样就实现了拦截器. 其中 ...
随机推荐
- centos7 date时间命令
date "+%F %T" %F full date; same as %Y-%m-%d --相当于年月日格式 %T time; same as %H:%M:%S ...
- JS 判断上传文件类型
var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...
- Windows系统上搭建Clickhouse开发环境
Windows系统上搭建Clickhouse开发环境 总体思路 微软的开发IDE是很棒的,有两种:Visual Studio 和 VS Code,一个重量级,一个轻量级.近年来VS Code越来越受欢 ...
- 转雅虎web前端网站优化 34条军规
雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文 1.Minimize HTTP Requests 减少HTTP请求 图片.css.sc ...
- 收到西门子发来的UG告知函怎么办?Solidworks盗版被查如何防范?厂商是怎么样查到公司在用盗版,有什么方法可以核实真假?……
收到西门子发来的UG告知函怎么办?Solidworks盗版被查如何防范?厂商是怎么样查到公司在用盗版,有什么方法可以核实真假?--很多企业信息化管理leader或者老板都希望能够通过一些取巧的办法来防 ...
- Java学习小总结
本学期主要学习Java程序语言及Javaweb相关知识,其中有相当一部分内容是暑假假期的学习内容,以下主要介绍一些Javaweb学习的总结. 以下教程均为个人建议(当然,适合自己的最好) 一.环境配置 ...
- grafana中如何展示prometheus的延迟分布数据?
最终效果 最终在grafana中展示了一个服务每分钟的延迟分布: 各个部分的含义如下: 1.时间的分布,从0.01秒到最多720秒 2.用颜色深浅代表次数.颜色越深,请求次数越多 3.时间轴,代表在这 ...
- golang中json格式化自定义日期格式
go 的time.Time,在json序列化是默认 2006-01-02T15:04:05Z07:00 的格式,十分不便, encoding/json包在序列化和反序列化的时候分别调用encode.g ...
- gin框架中图形验证码的生成和验证
功能和验证码使用原理 本案例中没有使用redis作为缓存,而是使用的内存存储方法 github链接地址 下载命令 go get github.com/mojocn/base64Captcha 请求处理 ...
- One Switch
前言 One Switch 是由国内知名开发者 TualatriX 带来的最新作品,功能小巧精简,设计优雅,犹如一块多功能的遥控器,通过状态栏快捷菜单即可「一键」快速实现保持亮屏.切换 AirPods ...