浅析SpringBoot中使用thymeleaf找不到.HTML文件的原因
揪一下兔耳朵 人气:0本文着重讲解了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文为大家做详细介绍,希望能够帮助到您,欢迎大家阅读和收藏
thymeleaf是目前最新的模板引擎,它和springboot完美搭配,让前后端不在疏远
首先先介绍一下市面上出现过的模板引擎
1, Verlocity 距今有10多年之久,是由Apache推出的 Struts2 底层使用2,Freemarker,距今有10多年之久, 第三方小公司推出,后来得到了Apache的认可,在Struts2这个框架中, 底层使用Freemarker. SpringBoot 默认使用Freemarker是以.ftl结尾的文件.
3,Thymeleaf是以.html结尾的文件.
那么,SpringBoot+thymeleaf找不到.HTML文件的原因有那些呢?
1,首先确认是否导入thymeleaf依赖
2,确认自己写的.html为后缀的文件是否放到 resources/templates/ 文件夹下。
3,确认自己的Controller类要放在与 有@SpringBootApplication注解的启动类相同包或者子包下。
4,确认Controller类不能使用 @RestController 或者 @ResponseBody注解,否则会直接return该字符串,是return不到目标html的。
有的朋友可能大意在启动引导类中写了 @RestController注解,
导致最后返回的只有一个字符串.如图所示 search.
ps:下面看下Spring boot找不到template下面的html文件解决方法
静态页面
spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下
/static
/public
/resources
/META-INF/resources
例如 resources建立一个static目录和index.htm静态文件,访问地址 http://localhost:8082/index.html
如果需要使用templates,thyleaf模版,首先Spring boot项目需要添加依赖,这样才能找到templates下面的*.html文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
例如:
这样就可以使用:localhost:8082/crawler/here来访问这个aaa.html文件了。
端口8082是因为在application.properties文件里面设置server.port=8082,一般tomcat默认的端口是8080
总结
加载全部内容