1. 程式人生 > 程式設計 >淺析SpringBoot中使用thymeleaf找不到.HTML檔案的原因

淺析SpringBoot中使用thymeleaf找不到.HTML檔案的原因

thymeleaf是目前最新的模板引擎,它和springboot完美搭配,讓前後端不在疏遠
首先先介紹一下市面上出現過的模板引擎

1,Verlocity 距今有10多年之久,是由Apache推出的 Struts2 底層使用2,Freemarker,距今有10多年之久,第三方小公司推出,後來得到了Apache的認可,在Struts2這個框架中,底層使用Freemarker. SpringBoot 預設使用Freemarker是以.ftl結尾的檔案.
3,Thymeleaf是以.html結尾的檔案.
那麼,SpringBoot+thymeleaf找不到.HTML檔案的原因有那些呢?

1,首先確認是否匯入thymeleaf依賴

在這裡插入圖片描述

2,確認自己寫的.html為字尾的檔案是否放到 resources/templates/ 資料夾下。

在這裡插入圖片描述

3,確認自己的Controller類要放在與 有@SpringBootApplication註解的啟動類相同包或者子包下。
4,確認Controller類不能使用 @RestController 或者 @ResponseBody註解,否則會直接return該字串,是return不到目標html的。

在這裡插入圖片描述

有的朋友可能大意在啟動引導類中寫了 @RestController註解,
導致最後返回的只有一個字串.如圖所示 search.

在這裡插入圖片描述

ps:下面看下Spring boot找不到template下面的html檔案解決方法

靜態頁面

springboot專案只有src目錄,沒有webapp目錄,會將靜態訪問(html/圖片等)對映到其自動配置的靜態目錄,如下

/static

/public

/resources

/META-INF/resources


例如 resources建立一個static目錄和index.htm靜態檔案,訪問地址http://localhost:8082/index.html

如果需要使用templates,thyleaf模版,首先Spring boot專案需要新增依賴,這樣才能找到templates下面的*.html檔案

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

例如:

這樣就可以使用:localhost:8082/crawler/here來訪問這個aaa.html檔案了。

埠8082是因為在application.properties檔案裡面設定server.port=8082,一般tomcat預設的埠是8080

總結

到此這篇關於淺析SpringBoot中使用thymeleaf找不到.HTML檔案的原因的文章就介紹到這了,更多相關springboot使用thymeleaf找不到.HTML檔案內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!