gpt4 book ai didi

从 jar 运行时,Spring Boot 给出 "TemplateInputException: Error resolving template"

转载 作者:行者123 更新时间:2023-12-04 03:04:03 25 4
gpt4 key购买 nike

我有一个在 IntelliJ 中或通过 gradle bootRun 启动时可以完美运行的应用程序。

但是,如果我执行 gradle bootRepackage 然后尝试运行生成的 jar,我最终会得到:

2014-12-02 21:46:14.086 ERROR 9839 --- [nio-2014-exec-2] org.thymeleaf.TemplateEngine             : [THYMELEAF][http-nio-2014-exec-2] Exception processing template "/login": Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers
2014-12-02 21:46:14.087 ERROR 9839 --- [nio-2014-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login", 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.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)

我可以看到 jar 中包含/templates/** 。内容对我来说看起来不错。

一个可能的(?)因素可能是我使用了一个引用布局的 html 页面,因此:
  layout:decorator="layouts/main"

我可以确认该文件在 jar 中。

/login 是这样定义的:
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("/login");
registry.addViewController("/").setViewName("/login");
}

我将 spring 安全配置为:
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override
public void configure(WebSecurity security) {
security.ignoring().antMatchers("/assets/**");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable();
http
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home")
.failureUrl("/login?error")
.permitAll()
.and()
.logout()
.invalidateHttpSession(true)
.logoutSuccessUrl("/login?logout")
.permitAll();
}
}

我认为这就是与这个问题相关的所有内容......

我见过 https://github.com/spring-projects/spring-boot/issues/112Proper location of Thymeleaf views for Spring (在其他人中)。尽管有这些资源,我还没有成功地使模板解析工作。

任何建议都非常感谢。

到目前为止,Spring Boot 还没有在最后一个障碍(接近最终部署)中跌跌撞撞,这是令人烦恼的。

最佳答案

默认情况下,我在使用带有 thymeleaf 的 spring boot 时遇到了同样的问题。一切正常,直到我必须尝试 .jar

消息说:
... org.thymeleaf.exceptions.TemplateInputException:解析模板“/fragments/footer”时出错

我解决了玩/,问题是他们不需要斜线。

我改变了这个:

<footer class="footers" th:replace="/fragments/footer :: footer">

为了这:
<footer class="footers" th:replace="fragments/footer :: footer">

关于从 jar 运行时,Spring Boot 给出 "TemplateInputException: Error resolving template",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27249078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com