Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu May 19 15:26:28 CST 2022
There was an unexpected error (type=Internal Server Error, status=500).
Error resolving template [home/login.html], template might not exist or might not be accessible by any of the configured Template Resolvers
org.thymeleaf.exceptions.TemplateInputException: Error resolving template [home/login.html], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098)
總結:
我的控制器代碼如下:
@Controller
@RequestMapping("/")
public class LoginController {
String htmlPrex="home/";
@RequestMapping("/")
public String Login(){
return htmlPrex+"login.html";
}
}
1.因為要返回的是一個頁面html,所以不是@Controller和@RestController的原因。
2.根本的原因應該還是路徑不對,導致無法解析對應的視圖信息,就我碰到的原因就是路徑不對的問題(我的路徑最後少了一個反斜杠/)。(我的yml文件)
server:
port: 9999
spring:
mvc:
static-path-pattern: /static/**
view:
prefix: /WEB-INF/view
thymeleaf:
prefix: classpath:/WEB-INF/view
mode: LEGACYHTML5
encoding: utf-8
cache: false
servlet:
content-type: text/html
路徑不對,原因也有很多種
可能1:文件不存在,要檢查文件是否存在,有的服務器區分大小寫,有的不分大小寫
可能2:spring.thymeleaf.prefix的配置不正確
(1)查看classpath:和/WEB-INF/view/之间是否多了空格
(2)查看spring.thymeleaf.prefix=classpath:/WEB-INF/view/末尾是否少了/符合
有的時候,如果覺得是yml中的配置信息不對,但是又不知道哪裡不對,可以先將yml中的信息屏蔽掉,然後利用默認的配置信息(默認的配置信息在ThymeleafProperties 文件中),在templates下建立對應的html文件,然後看是否還有錯誤信息,一點點去排查
public class ThymeleafProperties {
private static final Charset DEFAULT_ENCODING;
public static final String DEFAULT_PREFIX = "classpath:/templates/";
public static final String DEFAULT_SUFFIX = ".html";
}
僅適合菜鳥參考,自己記錄一下,以免後續忘記了。