该程序在带有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 WARN 4048 --- [主要] ion $ DefaultTemplateResolverConfiguration:找不到模板 位置:classpath:/ templates /(请添加一些模板或检查 您的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,希望使所有内容都默认运行(自动配置),但结果是相同的。
任何建议或世界演示项目都将有所帮助...
答案 0 :(得分:0)
已解决:
将模板目录从src/main/resources/templates/
更改为/resources/templates/
。 (与src
处于同一级别)
将spring.thymeleaf.prefix
设置为classpath:/templates/
答案 1 :(得分:0)
确保您的application.properties文件具有以下条目- spring.thymeleaf.prefix = classpath:/ templates /