spring boot - comment définir correctement l'emplacement des modèles?
Après avoir lutté pendant un certain temps, le Printemps de l'application (et le printemps de démarrage, d'ailleurs), il semble que je suis enfin sur le point de le faire fonctionner.
J'ai changé par le biais de la dépendance des résolutions et maven build déjà. L'Application démarre (et très vite!!) mais lorsque j'essaie d'accéder à
localhost:8080
J'obtiens le message du navigateur à chaque fois que j'essaie d'atteindre l'application de la page de destination:
HTTP Status 500 - Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "home/homeNotSignedIn", template might not exist or might not be accessible by any of the configured Template Resolvers
La src/main/resources
dossier est
src/main/resources
static //CSS, IMG and JS
templates //html
application.properties
log4j.properties
Maintenant, je comprends que j'ai peut être un mélange des concepts, mais sur mon ApplicationConfiguration.java
j'ai ceci:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "b.c.g.c")
public class ApplicationConfiguration extends WebMvcConfigurerAdapter {
@Bean
@Description("Thymeleaf template resolver serving HTML 5")
public ServletContextTemplateResolver templateResolver() {
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setCacheable(false);
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setPrefix("classpath:/templates/");
templateResolver.setSuffix(".html");
return templateResolver;
}
@Bean
@Description("Thymeleaf template engine with Spring integration")
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addDialect(new SpringSecurityDialect());
templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
templateEngine.setTemplateResolver(templateResolver());
return templateEngine;
}
@Bean
@Description("Thymeleaf view resolver")
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("UTF-8");
viewResolver.setCache(false);
viewResolver.setOrder(1);
return viewResolver;
}
//other beans
}
Et, sur application.properties
, j'ai ceci:
spring.thymeleaf.check-template-location=true
spring.thymeleaf.prefix=classpath:templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
Si j'voir ces extraits de dire la même chose, je parie que l'un peut aller, non?
Donc, deux questions, en fait,
1) comment s'assurer de Printemps + Thymeleaf comprendre où trouver les modèles?
2) comment faire pour obtenir l'application pour répondre à localhost:8080/appName
au lieu de localhost:8080/
?
OriginalL'auteur gtludwig | 2016-09-01
Vous devez vous connecter pour publier un commentaire.
Approche Recommandée
Je vais d'abord répondre à votre deuxième question
Vous devez définir l'application.propriétés ou de l'application.yml (Yaml est mieux) fichier dans le répertoire src/main/resources. Spring-Boot est livré avec les propriétés par défaut fichier dans lequel vous pouvez définir votre chemin de contexte (cherchez webproperties), le port de tout.
Pour répondre à votre deuxième question spring-boot, vous pouvez vous référer à la thymeleaf configurations dans le fichier de propriétés.
Êtes-vous l'emballage de forme d'un fichier JAR ou WAR?
Preveen, je suis d'emballage de la guerre.
veuillez consulter le lien ci-dessous (stackoverflow.com/questions/39013112/...)
OriginalL'auteur Praveen Kumar K S