spring-boot 静态资源处理

作者: 倔强的农民工 | 来源:发表于2018-05-28 11:05 被阅读0次

1. Spring Boot 的默认资源映射

  • 默认配置的 /** 映射到 /static (或/public、/resources、/META-INF/resources)
  • 默认配置的 /webjars/** 映射到 classpath:/META-INF/resources/webjars/
  • static、public、resources 等目录都在 classpath: 下面(如 src/main/resources/static)

2.自定义资源映射(推荐)

继承 WebMvcConfigurerAdapter 并重写方法 addResourceHandlers,例如:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.io.File;

@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {

    String basePath = System.getProperty("user.home")+File.separator+"voice/";
    //将classpath:/voice/ 映射到系统用户目录中voice文件夹
    registry.addResourceHandler("/voice/**").addResourceLocations("file:"+basePath);
    //将classpath:/image/ 映射到D:/image/文件夹  
    registry.addResourceHandler("/image/**").addResourceLocations("file:D:/image/");
    //将classpath:/image1/ 映射到classpath:/img1/文件夹  
    registry.addResourceHandler("/image1/**").addResourceLocations("classpath:/img1/");
    super.addResourceHandlers(registry);
 }

}

将classpath:/voice/ 映射到系统用户目录中voice文件夹
将classpath:/image/ 映射到D:/image/文件夹
将classpath:/image1/ 映射到classpath:/img1/文件夹

在static文件夹中加入 football.jpg 图片,在 resources文件夹中 新建 image文件夹,然后将 timg.jpg 图片放进去。
在访问浏览器中 访问 http://127.0.0.1:8080/image/football.jpg,出现图片,正常!
在访问浏览器中 访问 http://127.0.0.1:8080/timg.jpg,出现图片

3.通过配置文件映射(不推荐),application.properties

使用 spring.mvc.static-path-pattern 可以重新定义pattern,如修改为 /image/**
使用 spring.resources.static-locations 可以重新定义 pattern 所指向的路径,支持 classpath: 和 file: 注意 spring.mvc.static-path-pattern 只可以定义一个,目前不支持多个逗号分割的方式。
例如:
默认值为 /**
spring.mvc.static-path-pattern= /image/**
默认值为 classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
spring.resources.static-locations=classpath:/image/

相关文章

网友评论

    本文标题:spring-boot 静态资源处理

    本文链接:https://www.haomeiwen.com/subject/cvpwjftx.html