SpringBoot学习-静态资源映射

映射规则

  1. 设置和静态资源有关的参数,如缓存时间等

    1
    2
    3
    4
    5
    @ConfigurationProperties(
    prefix = "spring.resources",
    ignoreUnknownFields = false
    )
    public class ResourceProperties {
  2. 静态资源映射

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
          public void addResourceHandlers(ResourceHandlerRegistry registry) {
    if (!this.resourceProperties.isAddMappings()) {
    logger.debug("Default resource handling disabled");
    } else {
    Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
    CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
    if (!registry.hasMappingForPattern("/webjars/**")) {
    this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/"}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
    }

    String staticPathPattern = this.mvcProperties.getStaticPathPattern();
    if (!registry.hasMappingForPattern(staticPathPattern)) {
    this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
    }

    }
    }
    //配置欢迎页映射
    @Bean
    public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext, FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {
    WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(new TemplateAvailabilityProviders(applicationContext), applicationContext, this.getWelcomePage(), this.mvcProperties.getStaticPathPattern());
    welcomePageHandlerMapping.setInterceptors(this.getInterceptors(mvcConversionService, mvcResourceUrlProvider));
    welcomePageHandlerMapping.setCorsConfigurations(this.getCorsConfigurations());
    return welcomePageHandlerMapping;
    }

映射方式

一、/webjars/**

所有/webjars/,都去classpath:/META-INF/resources/webjars/找资源

webjars:以jar包的方式引入静态资源

官网: https://www.webjars.org/

示例:

  1. 引入依赖:

    1
    2
    3
    4
    5
    6
    <!--引入jquery-webjars-->
    <dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.5.1</version>
    </dependency>
  2. 静态资源目录结构

    webjars

  3. 资源请求路径

    在访问的时候,只需要写webjars下面资源的名称即可

    请求路径:http://localhost:8080/webjars/jquery/3.5.1/jquery.js

二、/**访问当前项目的任何资源

/**访问当前项目的任何资源,都是在静态资源的文件夹找

1
2
3
4
5
"classpath:/META-INF/resources/", 
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/" 当前项目的根路径

静态资源文件夹

http://localhost:8080/jquery4.js 去静态资源文件夹下找jquery4.js

三、index.html欢迎页

欢迎页:静态资源文件夹下的所有index.html;被/映射;**

http://localhost:8080 找index页面

四、**/favicon.ico图标

所有的/**favicon.ico 都是在静态资源文件下找

注意:

  • Spring Boot2.2.x版本及之后版本中,将默认的favicon.ico移除,同时也不再提供application.properties中的属性配置:spring.mvc.favicon.enabled
  • 想设置图标只需要将图标文件 favicon.ico 放在静态资源文件夹下或者自己配置映射就可以了。

最后更新: 2020年07月27日 15:00

原始链接: http://ligangit.com/2020/07/27/SpringBoot学习-静态资源映射/

× 请我吃糖~
打赏二维码