springboot2 虚拟路径设置_SpringBoot

本文介绍了在SpringBoot2中设置虚拟路径以访问本地文件的两种方法,包括通过ApplicationConfig.java配置和修改application.properties文件。通过这些配置,可以在服务器上通过URL访问到本地的文件资源,例如图片。
摘要由CSDN通过智能技术生成

现在有一个需求就是要将本地的文件映射到服务器上,然后可以访问。

比如上传文件,通常我们的项目代码和上传的文件是分离的,比如项目在 D 盘的某个目录,而图片上传在 E 盘某目录,那么如何在服务器上访问 localhost:8080/uploads/1.jpg 能够得到 E 盘上的图片呢?

如果是 Tomcat 配置很简单,之前也介绍过了。

本文介绍 SpringBoot 配置虚拟映射路径的两种方法。

博主用的是 Mac

在 /Users/liuyanzhao/Documents/uploads 目录下有一张图片 logo.jpg

现在想要在服务器上访问这张图片

方法一、

创建 ApplicationConfig.java

package com.liuyanzhao.chuyun.config;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**

* @author 言曌

* @date 2018/2/27 下午3:32

*/

@Configuration

public class ApplicationConfig extends WebMvcConfigurerAdapter {

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

/*

* 说明:增加虚拟路径(经过本人测试:在此处配置的虚拟路径,用springboot内置的tomcat时有效,

* 用外部的tomcat也有效;所以用到外部的tomcat时不需在tomcat/config下的相应文件配置虚拟路径了,阿里云linux也没问题)

*/

//Windows下

registry.addResourceHandler("/uploads2/**").addResourceLocations("file:D:/uploads2/");

//Mac或Linux下(没有CDEF盘符)

registry.addResourceHandler("/uploads/**").addResourceLocations("file:/Users/liuyanzhao/Documents/uploads/");

super.addResourceHandlers(registry);

}

}

浏览器访问 http://localhost:8080/uploads/logo.jpg 可以显示图片

方法二、

application.properties

web.upload-path=/Users/liuyanzhao/Documents/uploads/

spring.mvc.static-path-pattern=/**

spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/,file:${web.upload-path}

其中 web.upload-path 是自定义的,后面的 /Users/liuyanzhao/Documents/uploads/  是本地路径。

第二行的 /** 表示后面的所有文件都可以访问

spring.resources.static-locations 在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则static、public等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。

浏览器访问 http://localhost:8080/logo.jpg 可以显示图片

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值