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

 更新时间:2025年12月01日 09:50:17   作者:SingleCase  
本文介绍了使用Spring Boot和Kkfileview实现文件在线预览功能的配置过程,包括yml配置、webmvc配置、拦截器配置以及部署到服务器时的注意事项

前言

最近做项目,刚好遇到前段时间学的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访问,访问成功。。。服了我自己了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JDK14的新特性:instanceof模式匹配的使用

    JDK14的新特性:instanceof模式匹配的使用

    这篇文章主要介绍了JDK 14的新特性:instanceof模式匹配的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • java this引用逃逸详解

    java this引用逃逸详解

    这篇文章主要介绍了java this引用逃逸的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • 详解Java正则表达式语法

    详解Java正则表达式语法

    这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式、匹配验证-验证Email是否正确以及字符串中查询字符或者字符串,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Java使用connectTo方法提高代码可续性详解

    Java使用connectTo方法提高代码可续性详解

    这篇文章主要介绍了Java使用connectTo方法提高代码可续性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 全面解析SpringBoot配置文件

    全面解析SpringBoot配置文件

    这篇文章主要为大家全面的解析SpringBoot-配置文件,文中附含详细的图文示例代码,以便同学们能更好的理解,有需要的同学可以借鉴参考下
    2021-09-09
  • JAVA实现打印ascii码表代码

    JAVA实现打印ascii码表代码

    这篇文章主要介绍了JAVA实现打印ascii码表代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 浅谈spring的重试机制无效@Retryable@EnableRetry

    浅谈spring的重试机制无效@Retryable@EnableRetry

    这篇文章主要介绍了浅谈spring的重试机制无效@Retryable@EnableRetry,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Spring中byName和byType的区别及说明

    Spring中byName和byType的区别及说明

    这篇文章主要介绍了Spring中byName和byType的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Java中jstat命令的使用详解

    Java中jstat命令的使用详解

    jstat命令可以查看堆内存各部分的使用量,以及加载类的数量,下面这篇文章主要给大家介绍了关于Java中jstat命令使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 解析Mybatis Porxy动态代理和sql解析替换问题

    解析Mybatis Porxy动态代理和sql解析替换问题

    这篇文章主要介绍了Mybatis Porxy动态代理和sql解析替换,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论