当前位置: 代码网 > it编程>编程语言>Java > SpringBoot项目作为文件服务器配置方式

SpringBoot项目作为文件服务器配置方式

2025年12月01日 Java 我要评论
前言最近做项目,刚好遇到前段时间学的kkfileview,需要实现文件在线预览功能,之前学习的时候采用的nginx部署方式做静态资源访问,于是这次我打算使用yml方式配置yml配置spring: r

前言

最近做项目,刚好遇到前段时间学的kkfileview,需要实现文件在线预览功能,之前学习的时候采用的nginx部署方式做静态资源访问,于是这次我打算使用yml方式配置

yml配置

spring:
  resources:
    static-locations: file:e:/images/, file:e/images_bak/

这里解释一下,加这个"file:“是指定系统静态资源前缀,不加的话默认会有个"classpath:”。

webmvc配置

import org.springframework.context.annotation.configuration;
import org.springframework.web.servlet.config.annotation.enablewebmvc;
import org.springframework.web.servlet.config.annotation.resourcehandlerregistry;
import org.springframework.web.servlet.config.annotation.webmvcconfigurer;

@configuration
@enablewebmvc
public class mvcconfig implements webmvcconfigurer {
    
    @override
    public void addresourcehandlers(resourcehandlerregistry registry) {
        registry.addresourcehandler("/file/**")
            .addresourcelocations("file:e:/images/")
            .addresourcelocations("file:e:/images_bak/")
        ;
    }
}

这里解释一下,将spring-resources-static-locations下的路径做映射,

然后在配置类中配置registry.addresourcehandler(“/file/**”)

后面访问e:/images/下的0.jpg或者e:/images_bak下的100.jpg,在浏览器中都可以通过http://ip:port/file/0.jpg或者100.jpg访问成功。

这里注意,如果访问资源提示401注意一下,拦截器是否对/file/**放行

访问文件404问题排查

最开始我这本地访问404问题,检查yml配置和mvc配置类,我这发现的问题是少了/,e:/images/最后的/,这里加上之后本地访问正常。

如果不是这里问题,检查其他地方

  • 1.url路径是否正确。
  • 2.文件路径下是否有对应文件
  • 3.检查yml中是否有如下配置:
server:
  servlet:
    context-path: /app

如果有这个配置的话,访问路径得加上前缀,http://ip:port/app/file/0.jpg

部署到服务器后访问404

这里先贴出服务器配置

spring:
  resources:
    static-locations: file:/data/jars/test/plan/, file:/data/jars/test/personinfo/

同理,webmvc的配置类也得对应更改。

因为之前刚接触kkfileview的时候,出现docker路径挂载问题,我这首先想到的就是路径挂载,但是我查看启动脚本,personinfo和plan目录都是做了挂载的,于是排查其他原因

  • 1.服务器端口是否对外暴露
  • 2.云服务器查看安全组配置
  • 3.文件路径

当我检查了这些之后,仍然不能访问,于是我又回到文件路径挂载的问题上,我尝试对personinfo和plan的上级目录做挂载,重启容器,url访问,访问成功。。。服了我自己了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com