1. 程式人生 > >spring boot關於靜態資源的一些問題

spring boot關於靜態資源的一些問題

每次新建一個專案都會為訪問不到靜態資源煩惱,以下記錄訪問靜態資源的一些問題

使用spring boot專案是一般會使用thymeleaf模板來獲取資料,所以必須要匯入thymeleaf的座標

<!-- 匯入thymeleaf座標 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

 

spring boot預設訪問的是static下面的檢視資訊,所以可以在application.properties的配置檔案配置thymeleaf的檢視對映:

#thymeleaf模板配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

注意classpath:後面的值,無需加**

此時配置的是thymeleaf對映的檢視配置:

@GetMapping("login")
public ModelAndView login(){
    ModelAndView mv = new ModelAndView();
    mv.setViewName("index");
    return mv;
}

這樣的方式可以正確對映templates檔案下的檢視,而不可以使用http://localhost/xx/index.html這樣的方式直接訪問。

問題:在我們的index.html檔案中會引入很多靜態資原始檔,此時是載入不到的,造成苦惱

解決方案:把img\js\css放入你的static目錄下,我是這麼處理的。

 

另外一種訪問靜態資源的方式:

spring.mvc.static-path-pattern=/static/**