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/
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 添加以下依赖


  1. <dependency>
  2. <groupId>net.sourceforge.nekohtml</groupId>
  3. <artifactId>nekohtml</artifactId>
  4. <version>1.9.22</version>
  5. </dependency>

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

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


  1. <resource>
  2. <directory>src/main/resources</directory>
  3. </resource>

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

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

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

原文地址:https://blog.csdn.net/liming_0820/article/details/80878168

原文地址:https://www.cnblogs.com/jpfss/p/11040672.html

时间: 2024-10-14 20:41:02

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

SpringBoot+Thyemleaf报错Template might not exist or might not be accessible

第一次搭建SpringBoot+Thyemleaf项目,就遇见这个错误,所以记录一下 出现这个错误大致从以下几个方面排除 1.application.yml的配置问题 2.pom.xml导入,需导入以下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </depe

嵌入式linux开发环境搭建(四)——Samba服务器的搭建

嵌入式linux开发环境搭建(四)--Samba服务器的搭建 linux系统:ubuntu Server 12.04 安装流程如下: 1.安装 sudo apt-get install samba samba-common 2.修改配置文件/etc/samba/smb.conf [samba] comment = Samba Server browseable = yes path = /home/samba printable = no writable = yes write list =

嵌入式linux开发环境搭建(三)——TFTP服务器的搭建

嵌入式linux开发环境搭建(三)--TFTP服务器的搭建 系统环境:Ubuntu 14.04 server amd64 1.软件安装 apt-get install tftpd tftp openbsd-inetd 2.查看修改配置文件vim /etc/inetd.conf tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp /srv/tftp为Tftp服务器根目录,可以修改为/home/tftp 3.创

嵌入式linux开发环境搭建(二)——NFS服务器的搭建

嵌入式linux开发环境搭建(二)--NFS服务器的搭建 系统环境:Ubuntu 14.04 server amd64 1.安装 apt-get install nfs-common nfs-kernel-server 2.修改配置文件/etc/exports /home/nfs 192.168.0.0/24(rw,sync,no_subtree_check) 3.重启NFS服务器 /etc/init.d/nfs-kernel-server start 4.查看NFS设置 showmount -

linux centos环境下,perl使用DBD::Oracle遇到报错Can&#39;t locate DBDOracle.pm in @INC 的解决办法

前言 接手前辈的项目,没有接触.安装.使用过perl和DBD::Oracle,也没有相关的文档记录,茫茫然不知所措~~.一开始发现这个问题,就想着迅速解决,就直接在google上搜报错信息,搜索的过程中发现 如果不搞清楚前因后果我连解决方案都'看不见''看不懂'. 所以还是要补充这方面的知识,再思考解决方案.以下内容就是我一边学习一边解决问题的过程,如果不足,请各位大佬指出. 报错 install_driver(Oracle) failed: Can't locate DBD/Oracle.pm

Eclipse Maven profiles 多环境配置,测试环境与开发环境分开打包

1.将开发环境.测试环境.生产环境的配置文件分开存放,如下图: 2.在Maven中配置不同的环境打包配置文件的路径,配置如下: <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <!-- 默认激活该profile节点-->

thymeleaf在开发环境正常,但用jar运行时报错 Error resolving template template might not exist or might not be accessible

通过打包 jar直接运行的 百度搜索此关键词找到的:“springboot jar error resolving template” 原因是指向模板的路径前有斜杆/,就会出错,去掉就正常了(路径前不能带斜杆,类似相对路径的写法) 网上有人说增加配置spring.thymeleaf.prefix=classpath:/templates也能解决 原文地址:https://www.cnblogs.com/kinome/p/11509248.html

java win10 配置jdk的环境变量,project sdk is not defined报错

系统升级后原先设置的环境变量需要重新配置,在win10里面配置环境变量的时候碰到了一些麻烦,第一次配置环境变量的时候使用传统的配置方式设置了 CLASSPATH为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; JAVA_HOME为C:\Program Files\Java\jdk1.8.0_60 PATH为%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 配置完成后yunx java -version 提示找不到命令

我的Android进阶之旅------&gt;Android无第三方Jar包的源代报错:The current class path entry belongs to container ...的解决方法

今天使用第三方Jar包afinal.jar时候,想看一下源代码,无法看 然后像添加jar对应的源码包,也无法添加相应的源代码,报错如下:The current class path entry belongs to container 'Android Dependencies' which does not allow user modifications to source attachments on its entries . 如下图所示: 解决方法: 1.接着在工程目录下新建一个lib