SpringBoot+Thyemleaf开发环境正常,打包jar发到服务器就报错Template might not exist or might not be accessible

SpringBoot+Thyemleaf开发环境正常,打包jar发到服务器就报错Template might not exist or might not be accessible

 

网上查看了各种解决的思路,总结如下:

 

1. 在controller层请求处理完了返回时,没有使用@RestController或@ResponseBody而返回了非json格式

 

这种情况下返回的数据thymeleaf模板无法解析,直接报错,本人正式因为这个原因才报错。

 

解决方案:可以将@Controller换成@RestController,不过需要注意有没有其他的方法返回了html页面,会导致返回的不是页面而是字符串;最好的方法就是在你所请求的方法上面加一个@ResponseBody即可。

 

2. 在你的controller层对应的方法返回html路径及名称时,在前面多加了一个/ 。

 

例如return "/index",正式这个/导致报错的,解决:去掉返回前面的/即可,例如return "index" 。

 

3. 在使用springboot的过程中,如果使用thymeleaf作为模板文件,则要求HTML格式必须为严格的html5格式,必须有结束标签,否则会报错。

 

解决方案:1.在application配置文件中配置

 

#thymeleaf

spring.thymeleaf.prefix=classpath:/templates/ (这里已经有 / 了,return 的路径不要 / 开头)

spring.thymeleaf.suffix=.html

spring.thymeleaf.mode=LEGACYHTML5

spring.thymeleaf.encoding=UTF-8

spring.thymeleaf.content-type=text/html

spring.thymeleaf.cache=false

 

再在pom.xml 添加以下依赖

 

<dependency>

<groupId>net.sourceforge.nekohtml</groupId>

<artifactId>nekohtml</artifactId>

<version>1.9.22</version>

</dependency>

 

4. 资源文件的路径被修改,如果你其他的请求都正常返回则可忽略这条。

 

解决:在pom.xml文件的<build></build>中加入

 

<resource>

<directory>src/main/resources</directory>

</resource>

 

而本人的就厉害了,很好的避开了上述四种情形,而且开发环境就是正常的,一发到服务器上访问就报错,讲过了埋头几个小时的检错,终于发现在本人调用模板的时候出了一个错误,如下,修改前

 

 

看见了没,index.html与layout文件夹是处于同一级目录的,我多写了一个"/",然而在本地是可以访问的,但是一发到服务器上就会报错,所以修改后:

 

就可以正常发布了,牢记牢记!!!!!

————————————————

版权声明:本文为CSDN博主「LiMing_0820」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/liming_0820/article/details/80878168

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值