springboot直接訪問templates下靜態頁面
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下的頁面就可以直接被訪問了