代码之家  ›  专栏  ›  技术社区  ›  JustWe

在eclipse中工作良好,但如果作为jar运行,则“找不到模板”

  •  1
  • JustWe  · 技术社区  · 6 年前

    这个程序在带有IDE的Windows中运行得很好,但是当我释放到jar并在Ubuntu中运行它时,它不会呈现HTML。

    Src公司:

    @Controller
    @EnableAutoConfiguration
    @RequestMapping("/")
    public class JumanController {
    
        @GetMapping("/")
        public String index(Model model) {
            return "index";
        }
    
    ...
    

    主要内容:

    @SpringBootApplication
    public class App 
    {
        public static void main( String[] args )
        {
            TomcatURLStreamHandlerFactory.disable();
            SpringApplication.run(JumanController.class, args);
        }
    }
    

    HTML格式:

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    ...
    

    pom.xml:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        ...
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.0.5.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
                <version>2.0.5.RELEASE</version>
            </dependency>
        </dependencies>
    
    </project>
    

    设置:

    spring.thymeleaf.enabled=true 
    spring.thymeleaf.prefix=classpath:/resources/templates/ 
    

    prefix classpath:/templates/

    服务器启动时发出警告:

    2018-09-21 10:46:47.154警告4048---[主要] ion$DefaultTemplateResolverConfiguration:找不到模板 位置:classpath:/templates/(请添加一些模板或检查 您的配置)

    访问索引时出错:

    2018-09-21 10:47:15.253错误4048---[nio-8080-exec-1] org.thymeleaf.TemplateEngine模板引擎: [THYMELEAF][http-nio-8080-exec-1]异常处理模板 “index”:解析模板“index”时出错,模板可能不存在或 任何已配置的模板解析程序都可能无法访问

    org.thymeleaf.exceptions.TemplateInputException:解析错误 模板“索引”,模板可能不存在或不可访问 任何已配置的模板解析程序

    模板目录:

    src/main/resources/templates/index.html
    

    src/main/templates/ src/main/resources/templates/

    我只需要一个简单的 Spring boot static template 页面,并可以释放到一个罐子。我删除了application.properties想要使所有内容都作为默认值运行(自动配置),但结果是一样的。

    1 回复  |  直到 6 年前
        1
  •  0
  •   JustWe    6 年前

    解决了的:

    1. src/main/resources/templates/ /resources/templates/ src )

    2. spring.thymeleaf.prefix classpath:/templates/

    源代码: https://github.com/arkceajin/jumanpp-java

        2
  •  0
  •   Caffeine Coder    4 年前

    确保你的application.properties 文件包含以下条目- spring.thymeleaf.prefix=classpath:/templates/