靜態資源對映規則
首先,我們搭建乙個普通的springboot專案,回顧一下helloworld程式
寫請求非常簡單,那我們要引入我們前端資源,我們專案中有許多的靜態資源,比如css,js等檔案,這個springboot怎麼處理呢?
靜態資源對映規則:
springboot中,springmvc的web配置都在 webmvcautoconfiguration 這個配置類裡面
我們可以去看看 webmvcautoconfigurationadapter 中有很多配置方法
有乙個方法: addresourcehandlers 新增資源處理
@override
public
void
addresourcehandlers
(resourcehandlerregistry registry)
// 快取控制
;// webjars 配置if(
!registry.
("/webjars/**"))
// 靜態資源配置
string staticpathpattern =
this
.mvcproperties.
getstaticpathpattern()
;if(!registry.
(staticpathpattern)
)}
讀一下源**:比如所有的 /webjars/** , 都需要去 classpath:/meta-inf/resources/webjars/ 找對應的資源
什麼是webjars
webjars本質就是以jar包的方式引入我們的靜態資源 , 我們以前要匯入乙個靜態資源檔案,直接匯入即可。
使用springboot需要使用webjars,我們可以去搜尋一下
**:[webjars官網]:
要使用jquery,我們只要要引入jquery對應版本的pom依賴即可!
>
>
org.webjarsgroupid
>
>
jqueryartifactid
>
>
3.5.1version
>
dependency
>
匯入完畢,檢視webjars目錄結構,並訪問jquery.js檔案!
訪問:只要是靜態資源,springboot就會去對應的路徑尋找資源,我們這裡訪問
第二種靜態資源對映規則
那我們專案中要是使用自己的靜態資源該怎麼匯入呢?
我們去找staticpathpattern發現第二種對映規則 : /** , 訪問當前的專案任意資源,它會去找resourceproperties 這個類,我們可以點進去看一下分析:
// 進入方法
public string[
]getstaticlocations()
// 找到對應的值
private string[
] staticlocations = classpath_resource_locations;
// 找到路徑
private
static
final string[
] classpath_resource_locations =
resourceproperties 可以設定和我們靜態資源有關的引數;這裡面指向了它會去尋找資源的資料夾,即上面陣列的內容。
所以得出結論,以下四個目錄存放的靜態資源可以被我們識別:
"classpath:/meta-inf/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"
我們可以在resources根目錄下新建對應的資料夾,都可以存放我們的靜態檔案;
比如我們訪問 http://localhost:8080/1.js , 他就會去這些資料夾中尋找對應的靜態資源檔案;
總結:
優先順序:resources>static(預設)>public
自定義靜態資源路徑
spring.resources.static-locations=classpath:/coding/,classpath:/hsy/
一旦自己定義了靜態資料夾的路徑,原來的自動配置就都會失效 springboot 8小時問題
本文章純屬自己經驗總結,如有誤導,請多包涵。自從使用springboot 很少注意時間儲存顯示的問題 這次碰到了 弄了好久。終於有點眉目 1 當 專案部署在世界時的伺服器上,配置檔案中寫入 spring.jackson.time zone gmt 8 spring.jackson.date form...
spring boot 靜態資源
springboot中,預設的靜態資源路徑有 配置在resourceproperties類中 private static final string classpath resource locations 優先順序 靜態資源路徑 例如 webmvcautoconfiguration自動裝配類中,可...
springboot載入靜態資源
使用springboot寫了簡單的web專案,頁面使用jsp檔案 但是靜態資源js 載入不到,看了下官方文件發現是因為路徑不對 所以專案靜態資源應該配置在根路徑下這四個資料夾中是可以直接訪問到的 meta inf resources,public,resources,static下的資源,對映路徑 ...