SpringBoot項目無法訪問resources/templates下靜態資源文件

問題描述:

使用SpringBoot項目寫一個文件上傳的需求,發現在項目啓動後無法直接訪問resources/templates下的靜態資源頁面(html頁面)。

問題原因:

SpringBoot項目中resources/templates下的靜態資源是不能直接訪問的,原因是沒有開放訪問權限的,因爲templates下可能存放有後臺管理的頁面資源,當templates對外開放就會產生安全隱患,所以templates下的資源需要通過ViewResolver(視圖解析器)去解析訪問,大體流程 前端request請求->DispatcherServlet(前端控制器)-> Controller層的跳轉方法 -> ViewResslver(視圖解析器)->templates下的靜態資源(SpringMVC的工作流程)。

解決辦法:


注意:

    1、這裏需要使用@Controller,不能使用@RestController,不然會以Json格式響應到頁面,不會進行視圖解析(如下圖)。


通過訪問Controller層方法跳轉到需要訪問的靜態資源:

 

需要訪問的視圖資源:

如果通過Controller層方法還是不能跳轉成功並且顯示:

原因可能是沒有添加模板引擎,SpringBoot訪問靜態資源只支持靜態模板引擎(SpringBoot默認不支持jsp作爲視圖),所以這裏我添加了thymeleaf:

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

訪問成功:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章