java – spring boot – 如何正确定义模板位置?

经过一段时间的Spring应用程序(以及春季启动),看起来我终于要开始工作了.

我已经通过依赖解决方案和maven build进行了转换.应用程序启动(并且非常快!)但是当我尝试访问时

本地主机:8080

每当我尝试访问应用程序的登录页面时,都会收到以下浏览器消息:

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

src / main / resources文件夹是

src/main/resources
    static // CSS,IMG and JS
    templates // html
    application.properties
    log4j.properties

现在,我明白我可能会混合概念,但在我的ApplicationConfiguration.java上我有这个:

@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
}

而且,在application.properties上,我有这个:

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

虽然我看到这些摘录告诉了同样的事情,但我打赌一个人可以去,对吧?

那么,实际上有两个问题,

1)如何确保Spring Thymeleaf了解在哪里可以找到模板?

2)如何让应用程序回答localhost:8080 / appName而不是localhost:8080 /?

最佳答案
推荐方法
我将首先回答你的第二个问题

>您已在src / main / resources中定义application.properties或application.yml(Yaml更好)文件. Spring-Boot附带default properties文件,您可以在其中设置上下文路径(查找webproperties),移植所有内容.

 server.context-path=/

>要回答第二个问题spring-boot,您可以参考属性文件中的百万美元配置.

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...