spring-mvc – 适合春天的Thymeleaf景观的正确位置

我正在与Thymeleaf一起运行Spring启动应用程序.当我通过我的IDE(IntelliJ)运行应用程序时,一切运行正常.
但是,当我通过命令行(java -jar)运行应用程序时,视图无法解决,我收到以下错误:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index", template might not exist or might not be accessible by any of the configured Template Resolvers
    at org.thymeleaf.TemplateRepository.getTemplate(TemplateRepository.java:245)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1104)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
    at org.thymeleaf.spring3.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
    at org.thymeleaf.spring3.view.ThymeleafView.render(ThymeleafView.java:190)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)

这是我的设置:

我的目录结构

PROJECT-ROOT
  --src
    --main
      --java
        --controllers
          --[CLASS WITH MAIN METHOD]
        --views
          --index.html

我的模板解析器:

@Bean
  public ViewResolver viewResolver() {
    ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
    templateResolver.setTemplateMode("XHTML");
    templateResolver.setPrefix("views/");
    templateResolver.setSuffix(".html");
    SpringTemplateEngine engine = new SpringTemplateEngine();
    engine.setTemplateResolver(templateResolver);

    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(engine);
    return viewResolver;
  }

我应该在哪里放置视图,以便从jar文件运行时可以正确解析它们?

最佳答案
我认为答案是它取决于您的构建配置.目录“src / main / views”不是任何常见构建工具的标准资源位置,因此您必须将其显式添加到用于构建jar的工具的配置中.

如果我是你,我会选择流程(为什么不同?),只需使用“src / main / resources”来获取类路径资源.我也会完全忽略百万美元的配置,让Spring Boot处理它,将我的模板放在“src / main / resources / templates”中.

转载注明原文:spring-mvc – 适合春天的Thymeleaf景观的正确位置 - 代码日志