###项目中须要将图片放在磁盘上,不能将图片放在webapp下面!jquery
springboot默认配置基本上能够知足咱们的平常须要 可是项目中大量用户上传的图片,不能放在tomcat下面,这样子每次从新部署项目的时候,图片就失效了,非常麻烦。web
因此此时就须要自定义配置springboot的项目静态文件映射spring
springboot默认的配置规则tomcat
映射 /** 到springboot
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
复制代码
到本地文件路径也就是 resource/static/ 下面 访问时能够: localhost:8080/+资源路径+资源名bash
例如个人项目结构! mvc
此时我访问的静态资源为:app
localhost:8080/js/jquery.min.jswebapp
若是配置 jquery.min.js 直接在static下面 访问则是ide
localhost:8080/jquery.min.js
但如今须要自定义映射规则:
有两种方法一种是基于配置文件,另外一种是基于代码层面配置。
1 基于配置文件
#配置内部访问地址和外部图片访问地址 /myimgs/**
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=file:C:/Users/tizzy/Desktop/img/,classpath:/static/
复制代码
映射 /** 到 本地磁盘路径下存放的图片,和tomcat中的图片路径
访问路径则是
localhost:8080/jquery.min.js
localhost:8080/ 图片名
复制代码
2 基于代码层面配置
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//addResourceHandler是指你想在url请求的路径
//addResourceLocations是图片存放的真实路径
registry.addResourceHandler("/**").addResourceLocations("file:C:/Users/tizzy/Desktop/img/").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
}
复制代码