天天看點

springboot傳回html頁面,以及關于css,js等靜态檔案的處理

springboot項目隻要添加了web子產品的依賴就可以直接通路到前端頁面。

下面是web的依賴,版本号托管父工程

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

不需要添加​

​yml/properties​

​配置,但要求前端頁面的的存放位置如下

在resource下建立下面的檔案夾

​static​

​public​

​/META-INF/resources​

或者直接放在​

​/resources​

​下

如下:

springboot傳回html頁面,以及關于css,js等靜态檔案的處理

通路 html 頁面的方式

方式1、直接通路不經過controller

通過springboot位址+頁面全稱

例如:​

​​http://localhost:8080/manage.html​​

方式2、通過controller傳回頁面

這種方式會由于上下文路徑問題導緻css和js相對路徑的方式通路就會出問題,因為這種方式是在上下文環境下的相對路徑。

打個比方,下面的路徑就是通路路徑。首先傳回的路徑得改成​

​/manage.html​

springboot傳回html頁面,以及關于css,js等靜态檔案的處理

也就是Controller

springboot傳回html頁面,以及關于css,js等靜态檔案的處理

加上根路徑後就能通路到前端頁面,誕生由于前端頁面很多地方寫得是相對路徑,就會導緻傳回得頁面它就安裝​

​/car/manage​

​的相對路徑去下載下傳css以及js檔案,這樣很明顯是下載下傳不到的,因為這些檔案的實際完整的通路路徑應該是​

​​http://localhost:8080/css/css檔案​​

​或者​

​​http://localhost:8080/js/js檔案​​

解決辦法就是把所有相對路徑改成根路徑,

例如:​

​./css/index.css​

​改成​

​/css/index.css​

如果你不想改,那麼解決辦法就是進行前後端分離(可能的代價就是前端的一些請求路徑也要對應的調整)。