springboot配置虚拟路径在linux服务器中部署的问题

介绍

摘要:今天第一次部署成功了vue+springboot项目,记录下在部署的过程中遇到的问题,该篇博客用来记录springboot中配置的虚拟路径在部署至linux服务器中该如何修改的问题

在项目开发中总会需要访问服务器上的文件,配置虚拟路径,可以将本机的其它路径的文件目录映射到你设置的路径上,以便于你访问其中的文件

这里默认你懂得如何去设置虚拟路径

解决

如下的config类中设置一个资源访问路径(upload),映射的本地路径是:C盘下的Pic目录。(注意:末尾一定要有/

这个时候如果你在本机访问:http://localhost:8080/upload/文件名,即可访问到该目录下的文件

System.getProperty(“file.separator”):代表/,建议大家可以使用这种

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**")
                .addResourceLocations("file:C:/Pic/");
        //下面这个写法得到的值与上面的效果一样
        		//.addResourceLocations("file:C:"+System.getProperty("file.separator")+"Pic"+System.getProperty("file.separator"))
    }
}

那么到了我们部署项目到linux中的时候,这个路径就应该有所变化。相信大家都知道在linix系统中是没有C盘D盘这些的。

所以我们只需要将前面的C:去掉即可,这样访问的就算linux根目录(/)下的Pic目录中的文件(根据绝对路径访问)

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**")
                .addResourceLocations("file:/Pic/");
    }
}

springboot配置虚拟路径在linux服务器中部署的问题_第1张图片

当然,你也可以不创在根目录下,只要写入的绝对路径正确即可

扩展

  1. 虚拟路径配置正确后还是访问不到的原因可能就是跨域,或者你访问的ip地址和端口号错误的问题。(比如我在本机前端测试后端服务器,那么要保证访问的ip和端口号是服务器的ip和端口号)
  2. 也有可能其实访问的到,只是服务器响应的速度有点慢,尽量多等一会

ip和端口号是服务器的ip和端口号)
2. 也有可能其实访问的到,只是服务器响应的速度有点慢,尽量多等一会

你可能感兴趣的:(springboot)