SpringBoot配置网络访问本地资源的坑,太痛了,呜呜呜呜呜。
即本来在本地的磁盘路径:D:\install\java\project_img\某个文件
现在可以通过:localhost+端口+映射名字+某个文件名,访问到上述的文件。
http://localhost:8080/images/a420fedb58df4628b2c2521b0c95c5d4.jpg
那么怎么做呢?SpringBoot通过继承WebMvcConfigurer接口,重新addResourceHandlers方法实现,我翻了好久一些大神写的,说是继承WebMvcConfigurerAdapter父类,重写addResourceHandlers方法,然而那是SpringBoot1.X的做法了,现在已经被弃用了。2.0以上的写法是:
package com.liujia.o2o.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;
import java.io.File;
@Configuration
public class MvcConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/images/**").addResourceLocations("file:"+"D:/install/java/project_img/");
}
}
注意了:
“/images/”指的是你自己设置的映射名称,作用,只要访问:localhost+端口+images这个路径下的所有内容,项目都会去本地磁盘“D:/install/java/project_img/”里找东西。记得addResourceLocations括号后面必须有“file:”,还有啊括号里面的路径如果你直接去磁盘复制出来以下这个样子是不对的:
这样才对