Mam aplikację, która działa idealnie, gdy uruchamiana jest przez IntelliJ lub za pomocą gradle bootRun.Spring Boot daje "TemplateInputException: Error resolving template" przy uruchomieniu ze słownika
jednak, jeśli robię Gradle bootRepackage a następnie spróbuj i uruchomić wynikającej słój, ja skończyć z:
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)
widzę, że słoik ma/szablony/** w nim zawartych. treść wygląda dla mnie dobrze. (?)
Jeden możliwe czynnikiem może być to, że używam strona html odnosząc się do układu, a więc:
layout:decorator="layouts/main"
Mogę potwierdzić, że plik jest w słoiku.
/login definiuje thusly:
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("/login");
registry.addViewController("/").setViewName("/login");
}
i ja bezpieczeństwo wiosna skonfigurowany jako:
@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();
}
}
myślę, że to wszystko, co może mieć znaczenie w tej kwestii ...
Widziałem https://github.com/spring-projects/spring-boot/issues/112 i Proper location of Thymeleaf views for Spring (między innymi). Pomimo tych zasobów nie udało mi się uzyskać rozwiązania szablonu.
Wszelkie sugestie otrzymane z wdzięcznością.
Doszedłem do tej pory z Spring Boot, ale natknąłem się na ostatnią przeszkodę (ostateczne rozmieszczenie) jest dokuczliwy.
Nic oczywiste skacze się na mnie i wiosna Boot ma próbkę zastosowań Thymeleaf z układem (https://github.com/spring-projects/spring- boot/drzewo/master/spring-boot-samples/spring-boot-sample-web-ui), więc nie sądzę, że to jest problem. Może spojrzenie na próbkę może pomóc dostrzec różnicę w konfiguracji Twojej aplikacji? –