SpringBoot资源⽂件的存放位置设置⽅式
⽬录
默认存放静态资源⽂件的位置
⼿动配置其搜索资源⽂件的⽂件夹位置
把⽂件放在SpringBoot项⽬下的classpath中
把⽂件放在项⽬jar包之外的服务器磁盘中的某个⽂件夹中
SpringBoot默认的存放静态资源⽂件的位置是:
注:SpringBoot中的src/main/resources/资源⽂件夹对应classpath:。
默认存放静态资源⽂件的位置
在SpringBoot项⽬中的⽂件夹位置为:
即:搜索⽂件夹的优先顺序和数组中的顺序⼀致。
当我们访问IP地址:端⼝号/时,就相当于访问到了这四个⽂件夹。
如:访问:localhost:8080/123.jpg时,就会先去看src/main/resources资源⽂件夹下的META-INF下的resoures⽂件夹中是否有123.jpg,没有的话再看src/main/resources资源⽂件夹下的resoures⽂件夹中是否有123.jpg,没有的话再看src/main/resources资源⽂件夹下的static⽂件夹中是否有123.jpg,没有的话再看src/main/resources资源⽂件夹下的public⽂件夹中是否有123.jpg。
⼿动配置其搜索资源⽂件的⽂件夹位置
把⽂件放在SpringBoot项⽬下的classpath中
⽅式⼀:通过配置类
import t.annotation.Configuration;
import org.springframework.fig.annotation.ResourceHandlerRegistry;
import org.springframework.fig.annotation.WebMvcConfigurationSupport;
/**
* 主动设置URL匹配路径
*
* @author JustryDeng
* @date 2018年8⽉4⽇上午1:36:38
*/
@Configuration
public class MyURLPatternConfiguration extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/fileData/**").addResourceLocations("classpath:/myFile/");
super.addResourceHandlers(registry);
}
}
此时:访问IP地址:端⼝号/fileData/时,就相当于到了src/main/resources资源⽂件夹下的myFile⽂件夹中了,图⽰说明:
注:此时默认的四个⽂件夹都失效了,如果想让默认的四个⽂件夹依然有效,那么可以在配置类中多次通过.addResourceHandler添加指定那四个⽂件夹。
⽅式⼆:通过配置⽂件
spring怎么读取jar文件# 设置当URI为/fileData/**时,才进过静态资源
# 注:如果设置为/**,那么表⽰任何访问都会经过静态资源路径
spring.mvc.static-path-pattern=/fileData/**
# ⾃定义路径
# 注:⾃定义路径时,默认的四个⽂件夹下中的“META-INF下的resoures⽂件夹”仍然有效,其他三个⽂件夹失效
# (此时:访问ip:端⼝号/fileData/时,相当于访问到了 “⾃定义的⽂件夹”和 “META-INF下的resoures⽂件夹”);
# 注:搜索⽂件时,⾃定义的⽂件夹的优先级要⾼于默认的四个⽂件夹
# 提⽰:如果我们显式地把⾃定义⽂件夹和默认的四个⽂件夹都写出来,那么都会有效(此时,优先级从左⾄右依次降低)
#sources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/myFile/
把⽂件放在项⽬jar包之外的服务器磁盘中的某个⽂件夹中
⽅式⼀:通过配置类
import t.annotation.Configuration;
import org.springframework.fig.annotation.ResourceHandlerRegistry;
import org.springframework.fig.annotation.WebMvcConfigurationSupport;
/**
* 主动设置URL匹配路径
*
* @author JustryDeng
* @date 2018年8⽉4⽇上午1:36:38
*/
@Configuration
public class MyURLPatternConfiguration extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/
/ 指定到D盘下的myFile⽂件夹
// 注:如果是Linux的话,直接指定⽂件夹路径即可,不需要指定哪个盘(Linux就⼀个可⽤盘)
registry.addResourceHandler("/fileData/**").addResourceLocations("file:D:/myFile/");
super.addResourceHandlers(registry);
}
}
此时:我们访问IP地址:端⼝号/fileData/时,就相当于到了服务器D盘下的myFile⽂件夹中了。
注:此时默认的四个⽂件夹都失效了,如果想让默认的四个⽂件夹依然有效,那么可以在配置类中通过 .addResourceHandler多次添加四个⽂件夹。
⽅式⼆:通过配置⽂件
# 设置当URI为/fileData/**时,才进过静态资源
# 注:如果设置为/**,那么表⽰任何访问都会经过静态资源路径
spring.mvc.static-path-pattern=/fileData/**
# ⾃定义路径
# 注:⾃定义路径时,默认的四个⽂件夹下中的“META-INF下的resoures⽂件夹”仍然有效,其他三个⽂件夹失效
# (此时:访问ip:端⼝号/fileData/时,相当于访问到了 “⾃定义的⽂件夹”和 “META-INF下的resoures⽂件夹”);
# 注:搜索⽂件时,⾃定义的⽂件夹的优先级要⾼于默认的四个⽂件夹
# 提⽰:如果我们显式地把⾃定义⽂件夹和默认的四个⽂件夹都写出来,那么都会有效(此时,优先级从左⾄右依次降低)
#sources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:D:/myFile/
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论