[英]Thymeleaf cannot detect templates inside spring-boot project
我的 Spring boot 应用程序中有以下项目结构,我想在其中使用 Thymeleaf
projectName
-Gradle-Module1(Spring boot module)
-build
-src
-main
-resources
-templates
index.html
build.gradle
-Gradle-Module2
...
build.gradle
...
但 spring-boot 找不到我的模板目录并显示警告
找不到模板位置:classpath:/templates/(请添加一些模板或检查您的 Thymeleaf 配置)
PS:我正在使用@EnableAutoConfiguration
在我的控制器代码中,我正在做类似的事情:
@Controller
@EnableAutoConfiguration
public class BaseController {
@RequestMapping(value = "/")
public String index() {
return "index.html";
}
}
和index.html
文件只打印 hello world。
所以通常它应该查看src/resources/templates/
(我想是同一个 Gradle 模块),但不知何故它无法找到它。
当我尝试访问localhost:8080
时,出现以下错误
解析模板“index.html”时出错,模板可能不存在或可能无法被任何配置的模板解析器访问
有什么我想念的吗?
任何指针表示赞赏。 谢谢。
您必须按如下方式配置 Thymeleaf:
@Configuration
public class ThymeleafConfig {
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setCacheable(false);
templateResolver.setPrefix("classpath:/templates/");
templateResolver.setSuffix(".html");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
springTemplateEngine.addTemplateResolver(templateResolver());
return springTemplateEngine;
}
@Bean
public ThymeleafViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setOrder(1);
return viewResolver;
}
}
Spring 文档建议将@EnableAutoConfiguration
注释添加到您的主要@Configuration
类。
此外,您似乎有错误的项目结构,典型的包层次结构是:
src
|- main
|- java
|- resources
|- static
|- templates
|- test
在这种情况下,您的模板将在src/main/resources/templates
,而不是在src/resources/templates/
。
您应该只返回文件名。 例如没有 .hmtl
@RequestMapping(value = "/")
public String index() {
return "index";
}
@GetMapping("/")
public String index() {
return "index";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.