解決Springboot項目打包後的頁面丟失問題(thymeleaf報錯)
Springboot項目打包後的頁面丟失
遇到的問題目前找到兩種
- 返回視圖路徑以/開頭,例如 /test/hello
- 在thymeleaf頁面中,引入的頁面以/開頭,例如:<footer th:replace=”/index::footer”></footer>
代碼書寫規范:
@GetMapping("/about-us") public String sysInfo(){ return "students/about-us"; }
錯誤寫法:(不要在前面加入”/”)
return "/students/about-us";
引入公共模板時,也不要加”/’
正確寫法:
<header th:replace="main/sys-public :: stu-header"></header>
總結:在代碼編寫的過程中,要註意規范書寫習慣,避免不必要的問題發生。
Springboot打包ThymeLeaf報錯
開發環境
- Spring Boot 2.0.2
- Thymeleaf 3.0.9
現象
Boot 打包啟動後報如下錯
org.thymeleaf.exceptions.TemplateInputException: Error resolving template “/login”, template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:870) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) [thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) [thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:354) [thymeleaf-spring5-3.0.9.RELEASE.jar!/:3.0.9.RELEASE] …
判斷為模板視圖跳轉錯誤
原因
配置文件錯誤,模板讀取路徑錯誤
解決辦法
修改ThymeLeaf配置
具體操作
增加紅色的部分
thymeleaf: mode: HTML cache: false prefix: classpath:/templates
<!--公共模板引用 --> <head th:include="/template/head :: tableHeader"></head>
/** * 頁面路由 * @param pageName 頁面名稱 * @param model 基礎model綁定常用值 * @return */ @ApiOperation(value = "請求頁面",notes = "獲取頁面") @GetMapping(value = "/page/{pageName}") public String page(@PathVariable @ApiParam("頁面名稱")String pageName, @ApiIgnore Model model){ initDefaultModel(model); String page = pageConfig.getPageMap().get(pageName); if(page == null){ return "/404"; } return page; }
開發環境中遺漏可以正常啟動跳轉,打包後文件結構產生變化需要指定。
參考文檔
Spring Boot gives “TemplateInputException: Error resolving template” when running from jar
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- springboot+thymeleaf打包成jar後找不到靜態資源的坑及解決
- SpringBoot整合Thymeleaf與FreeMarker視圖層技術
- SpringBoot QQ郵箱發送郵件實例代碼
- SpringBoot整合Thymeleaf的方法
- springboot訪問template下的html頁面的實現配置