Thymeleaf无法检测spring-boot项目中的模板

我的Spring Boot应用程序中具有以下项目结构,我想在其中使用Thymeleaf

projectName

-Gradle-Module1(Spring boot module)

-build

-src

-main

-resources

-templates

index.html

build.gradle

-Gradle-Module2

...

build.gradle

...

但spring-boot找不到我的模板目录,并显示警告

Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)

PS:我正在使用 @EnableAutoConfiguration

在我的控制器代码中,我正在做类似的事情

@Controller

@EnableAutoConfiguration

public class BaseController {

@RequestMapping(value = "/")

public String index() {

return "index.html";

}

}

index.html文件只是打印你好世界。

因此通常它应该在src/resources/templates/(我认为是相同的Gradle模块)内部查找,但是以某种方式无法找到它。

当我尝试访问时,localhost:8080 我得到以下错误信息Error resolving template "index.html",

template might not exist or might not be accessible by any of the configured

Template Resolvers 我缺少什么吗?

任何指针表示赞赏。

谢谢。

回答:

您必须按以下方式配置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 doc建议将@EnableAutoConfiguration注释添加到您的主@Configuration类。

似乎您的项目结构错误,典型的包层次结构为:

src

|- main

|- java

|- resources

|- static

|- templates

|- test

在这种情况下,您的模板将位于中src/main/resources/templates,而不是中src/resources/templates/

以上是 Thymeleaf无法检测spring-boot项目中的模板 的全部内容, 来源链接: utcz.com/qa/420822.html

回到顶部