在 Eclipse 中工作正常,但如果作为 jar 运行,则“找不到模板”
Posted
技术标签:
【中文标题】在 Eclipse 中工作正常,但如果作为 jar 运行,则“找不到模板”【英文标题】:Work fine in eclipse but "Can't find template" if run as jar 【发布时间】:2019-02-25 09:10:35 【问题描述】:该程序在带有 IDE 的 Windows 中运行良好,但是当我发布到 jar 并在 Ubuntu 中运行它时,它不会呈现 html。
来源:
@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:找不到模板 位置:类路径:/模板/(请添加一些模板或检查 你的 Thymeleaf 配置)
访问索引时出错:
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
页面,并且可以释放到一个jar 中。我删除了application.properties 想让一切都默认运行(AutoConfiguration),但是结果是一样的。
任何建议或 hello world 演示项目都会有所帮助...
【问题讨论】:
【参考方案1】:确保您的 application.properties 文件具有以下条目 - spring.thymeleaf.prefix=classpath:/templates/
【讨论】:
【参考方案2】:已解决:
将模板目录从 src/main/resources/templates/
更改为 /resources/templates/
。 (与src
同级)
将spring.thymeleaf.prefix
设置为classpath:/templates/
源码:https://github.com/arkceajin/jumanpp-java
【讨论】:
以上是关于在 Eclipse 中工作正常,但如果作为 jar 运行,则“找不到模板”的主要内容,如果未能解决你的问题,请参考以下文章
Java JDBC 连接 Integrated Security 只能在我的 Eclipse 中工作
为啥 getResourceAsStream() 可以在 IDE 中工作,但不能在 JAR 中工作?
pyspark 代码在控制台中工作,但不在 zeppelin 中