thymeleaf 打jar启动之后找不到模板页面 Error resolving template [/home/index]

在使用Springboot和Thymeleaf构建的项目中,通过IDEA直接运行正常,但打包成jar后访问报找不到模板错误。问题可能在于打包配置。尽管模板文件存在且在IDEA中工作良好,但在jar环境下路径解析可能不同。检查Controller的模板路径返回是关键。

使用springboot+thymeleaf构建项目, 用idea编译器直接启动项目,访问首页没有问题, 但是打jar包之后再次访问却始终报错找不到模板:Error resolving template [/home/index]

问题出在哪里

检查发现相对应的模板页面确实都存在,更何况打包前可以正常访问项目页面, 这说明并不缺少模板页面。

仔细检查一下Controller层返回的模板路径,发现一个不易察觉的问题:

更多内容进入javacorn.com

http://www.javacorn.com 

`org.thymeleaf.exceptions.TemplateInputException: Error resolving template [lu/chaugnyezhezhuce/a]` 错误通常表示 Thymeleaf 无法到或访问指定的模板。可以参考以下方法解决: - **检查模板路径**:确保模板路径正确,且没有多余的斜杠。若返回模板时前面加了斜杠,去掉前面的斜杠。比如,若代码里是 `return "/lu/chaugnyezhezhuce/a"`,要改成 `return "lu/chaugnyezhezhuce/a"` [^2]。 - **配置模板前缀**:在配置文件里添加 `spring.thymeleaf.prefix=classpath:/templates`,这样 Thymeleaf 就会从 `classpath:/templates` 目录下查模板 [^2]。 - **检查返回值和注解**:如果 Controller 方法返回值设置为空,就无法返回页面,也会出现该错误。解决办法是在方法上加 `@ResponseBody` 注解,若不需要返回页面 [^2]。 - **检查模板文件是否存在**:确保 `lu/chaugnyezhezhuce` 目录下确实存在 `a` 模板文件,并且文件路径和名称的大小写无误。 - **检查模板文件权限**:确保应用程序有访问模板文件的权限。 ### 代码示例 ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MyController { @GetMapping("/example") public String example() { // 正确的返回路径,去掉多余斜杠 return "lu/chaugnyezhezhuce/a"; } @GetMapping("/noPageReturn") @ResponseBody public String noPageReturn() { return "This is a response without returning a page"; } } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值