SpringBoot Web静态资源访问

SpringBoot Web静态资源访问映射规则

在WebMvcAutoConfiguration源码中有这样一个方法:

 public void addResourceHandlers(ResourceHandlerRegistry registry) {
            if(!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            } else {
                Integer cachePeriod = this.resourceProperties.getCachePeriod();
                if(!registry.hasMappingForPattern("/webjars/**")) {
                    this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/"}).setCachePeriod(cachePeriod));
                }

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

            }
        }
        //配置欢迎页的映射
        @Bean
        public WebMvcAutoConfiguration.WelcomePageHandlerMapping welcomePageHandlerMapping(ResourceProperties resourceProperties) {
            return new WebMvcAutoConfiguration.WelcomePageHandlerMapping(resourceProperties.getWelcomePage(), this.mvcProperties.getStaticPathPattern());
        }

第一种:所有 /webjars/** 都去classpath:/META-INF/resources/webjars/下找资源

webjars:以jar包的形式导入静态资源,例如jquery、bootstrap等

导航:http://www.webjars.org/

导入jquery的webjar依赖:

  
        <dependency>
            <groupId>org.webjarsgroupId>
            <artifactId>jqueryartifactId>
            <version>3.3.1version>
        dependency>

SpringBoot Web静态资源访问_第1张图片

资源访问路径:http://localhost:8080/webjars/jquery/3.3.1/jquery.js

第二种:/** 访问项目下任何资源 (静态资源的文件夹)

"classpath:/META-INF/resources/",
"classpath:/resources/", 
"classpath:/static/", 
"classpath:/public/"
"/"  当前项目的根路径

第三种: 静态资源的文件夹下的所有index.html页面,被/**映射

localhost:8080/

第四种:favicon都是在静态资源文件夹下找,

你可能感兴趣的:(SpringBoot系列)