sringboot资源文件夹resources下默认有两个子文件夹:static、templates

关于这个文件夹的访问权限可以通过源码了解:

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};

由源码可知

static文件夹下的资源是可以直接访问的,一般用来存放静态资源(源码中目录下的资源都可以直接访问)

但是templates下的资源是受保护的,不允许直接访问。如果要访问,可以在maven引入thymeleaf依赖,然后通过controller访问

如果要跟static一样可以直接被访问,则需要在application.yml中进行配置

百度的配置:

spring:  
  resources:
    static-locations: classpath:/static/,classpath:/templates/

但是配置之后显示该配置已经过时,不建议使用

再次查看源码:

@DeprecatedConfigurationProperty(
    replacement = "spring.web.resources.static-locations")public String[] getStaticLocations() {    return super.getStaticLocations();
}

由源码可知配置方式为:

spring:  
  web:  
    resources:
      static-locations: classpath:/static/,classpath:/templates/

至此,templates下的页面就可以直接被访问了

原文地址:https://www.cnblogs.com/Y-wee/p/14711878.html