spring boot關於靜態資源的一些問題
阿新 • • 發佈:2018-11-05
每次新建一個專案都會為訪問不到靜態資源煩惱,以下記錄訪問靜態資源的一些問題
使用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/**