SpringBoot---靜態頁面加載


Thymeleaf模板配置:

maven添加支持如下:

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

application.properties添加如下配置:

# 定位模板的目錄 spring.mvc.view.prefix=classpath:/templates/ # 給返回的頁面添加后綴名 spring.mvc.view.suffix=.html

controller返回頁面:

 @GetMapping("/index") public String index(){ return "home"; //當瀏覽器輸入/index時,會返回 /templates/home.html頁面 }

注意:
spring boot默認開啟了靜態文件的配置,任何放在static文件夾下的資源都是靜態文件。引用靜態文件時以/或者前綴不加任何定位符,都會去static文件夾下查找。 

Thymeleaf模版默認會使用templatess作為視圖文件下

返回純靜態html,時下,比較流行的是前后端分離,前端做路由,前端的開發不使用模板。在這種情況下,使用模板就顯得有些臃腫了。


spring boot返回靜態頁面的方式非常方便,首先需要移除maven的thymeleaf依賴。

非controller模式
這種模式不使用controller,將html和css,js同等對待。這種模式下,html中的如果不加/,則會定位到當前頁面。
要看到返回靜態頁面,只需要將之前的home.html移到static文件夾下。並刪除controller和注釋掉application.properties中的配置即可。直接在瀏覽器中輸入:http://localhost:8080/index.html。

controller模式
習慣上,我們還是多使用/index方式,而不是index.html方式。
為此還是需要controller。

# 定位頁面的目錄到static/下
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html

controller當然也是需要的,和之前一樣:

@GetMapping("/index")
public String index(){
return "home"; //當瀏覽器輸入/index時,會返回 /static/home.html的頁面
}
到這里就可以了。不在需要額外配置。在瀏覽器中輸入:http://localhost:8080/index就可以定位到static下的index.html頁面了。

 

注意點:

一般如果只把框架做為url路由,最好的做法是在靜態資源和視圖View建立相同的文件,視圖在通過框架在相應的目錄查找,靜態資源則路由到static目錄下去查找。

看如下項目結構:

 

更改靜態資源默認的訪問路徑

上面說到/resources/static靜態資源的默認請求路徑為/ 。假如我的靜態資源位於/resources/static/dist目錄下,但是我不想將請求改為/dist(這里要注意一下html中引用其它資源的相對路徑如果是./xxx 在本地更改真個文件加的路徑引用的資源文件是能夠正常定位,但是在web容器中./xxx需改為/dist/xxx ,這里涉及到web根路徑和本地文件路徑的問題)可以在application.properties加如下配置: 
spring.resources.static-locations=classpath:/static/dist/ 
這樣當我們訪問/ 時實際定位的資源文件位置是/resources/static/dist 這樣就避免了當更改資源文件的位置時需要更改html中的全部引用。

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM