启动 Spring 项目报错: Cannot find template location: classpath:/templates/
如题,启动 Spring 项目报错:Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
。主要是因为项目引入了 spring-boot-starter-thymeleaf
依赖,thymeleaf 是一种模板语言,可以动态或者静态显示文本内容。
正常情况下,是不需求配置 pom.xml 的(官网 securing a web application 是不包含 pom.xml 中 resource 部分配置的,但运行正常)。
检查 src/main/resources
路径下是否存在 templates
文件夹,且文件中是否存在内容。
如果项目中不存在模板内容且运行正常,想要关闭这条警告,可以在 application.properties 中添加 resource
配置项:
spring.thymeleaf.check-template=false
spring.thymeleaf.check-template-location=false
表示不再检查 templates
文件夹下是否存在模板。
但我的情况显然不是这样,因为我需要使用模板,并且已经在 templates
文件夹下创建了模板文件,文件后缀为 .html
。
检查 pom.xml
中 resources
设置如下:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.DemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
解决方法:添加 <include>**/*.html</include>
。
修改后的:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
<include>**/*.html</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.DemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
个人尝试过 <include>*/*.html</include>
也能生效,不清楚两个星号有什么区别。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。