SpringMVC大家都不陌生,而被SpringBoot集成的SpringMVC除了配置與獨(dú)立的優(yōu)點(diǎn)差別两疚,其他使用都是一樣的床估,一般的項(xiàng)目都會(huì)配置登錄攔截器,那如果我們的image鬼雀、css顷窒、js是不是也會(huì)被攔截器攔截呢?答案是肯定的源哩,當(dāng)然也不是必然的鞋吉。我們?cè)谂渲脭r截器的攔截路徑時(shí)可以過濾掉靜態(tài)文件的路徑規(guī)則。
SpringBoot默認(rèn)給我們配置了靜態(tài)資源的地址轉(zhuǎn)發(fā)励烦,我們只需要將靜態(tài)文件放到/resources/static目錄下谓着,就可以直接訪問了。但是這樣往往會(huì)暴露給用戶我們的項(xiàng)目結(jié)構(gòu)坛掠,針對(duì)這一點(diǎn)我們需要修改靜態(tài)資源的路徑赊锚,下面我們開始本章節(jié)的內(nèi)容。
免費(fèi)專題文章匯總
恒宇少年在博客整理出來了SpringBoot屉栓、ApiBoot舷蒲、SpringCloud的文章匯總【SpringBoot基礎(chǔ)教程專題】,【SpringCloud基礎(chǔ)教程專題】友多,【ApiBoot組件使用專題】
本章目標(biāo)
配置SpringBoot修改內(nèi)置SpringMVC靜態(tài)資源路徑牲平,提高項(xiàng)目目錄結(jié)構(gòu)的安全性。
構(gòu)建項(xiàng)目
我們使用InteiilJ IDEA工具創(chuàng)建一個(gè)SpringBoot項(xiàng)目域滥,預(yù)先加入web模塊的依賴纵柿,項(xiàng)目結(jié)構(gòu)如下圖1所示:
上圖1我們的項(xiàng)目結(jié)構(gòu)已經(jīng)創(chuàng)建完成,下面我們倆創(chuàng)建一個(gè)測(cè)試攔截器启绰。
嘗試訪問靜態(tài)文件
我們隨便復(fù)制一張圖片到我們的項(xiàng)目/resources/static目錄下昂儒,如下圖2所示:
接下來我們啟動(dòng)項(xiàng)目,啟動(dòng)成功后打開瀏覽器訪問127.0.0.1:8080/t.png委可,查看是否可以展示圖片內(nèi)容渊跋,效果如下圖3所示:
可以看到我們成功了訪問到了圖片,但是這樣我們的項(xiàng)目目錄就完全暴露了着倾。我們?nèi)绾巫龀鲂薷哪兀?/p>
配置自定義靜態(tài)資源路徑
接下來我們創(chuàng)建一個(gè)名叫Chapter9Configuration的配置類拾酝,類內(nèi)添加自定義靜態(tài)資源的配置,如下圖4所示:
上述圖4內(nèi)容屈呕,我們配置了靜態(tài)資源的路徑為/yuqiyu/9/resources/**微宝,那么只要訪問地址前綴是/yuqiyu/9/resources/棺亭,就會(huì)被自動(dòng)轉(zhuǎn)到項(xiàng)目根目錄下的static文件夾內(nèi)虎眨。
如:我們?cè)L問:127.0.0.1:8080//yuqiyu/9/resources/t.png就會(huì)被解析成127.0.0.1:8080/t.png。
重啟項(xiàng)目再次訪問
我們重啟下項(xiàng)目,打開瀏覽器訪問地址:127.0.0.1:8080//yuqiyu/9/resources/t.png嗽桩,如果正常就會(huì)成功訪問到我們之前的t.png圖片文件岳守,效果如下圖5所示:
上圖5的結(jié)果證實(shí)了我的解釋,我們通過新的地址確實(shí)可以訪問到靜態(tài)資源文件了碌冶。一般我們的項(xiàng)目不會(huì)講資源文件直接放到static目錄下湿痢,而是創(chuàng)建幾個(gè)二級(jí)路徑,如下圖6所示:
我創(chuàng)建了一個(gè)imgs文件夾扑庞,將t.png圖片移動(dòng)到imgs目錄下譬重,那么我們?cè)谠L問路徑下只需要添加一個(gè)二級(jí)路徑即可,我們?cè)賮碇貑⑾马?xiàng)目罐氨,訪問地址:127.0.0.1:8080/yuqiyu/9/resources/imgs/t.png臀规,我們通過這個(gè)路徑是可以成功訪問到圖片的,所以不管你的資源文件怎么分類栅隐,只需要添加對(duì)應(yīng)的二級(jí)路徑就可以了塔嬉。
總結(jié)
上面內(nèi)容就是本章的全部講解,本章主要講述了SpringBoot項(xiàng)目集成的SpringMVC是如何自定義靜態(tài)資源路徑的租悄。SpringBoot為我們提供了很多便利谨究,在傳統(tǒng)的項(xiàng)目中我們必須要去配置靜態(tài)資源路徑才可以訪問,而SpringBoot項(xiàng)目則不需要泣棋,它內(nèi)部已經(jīng)做了默認(rèn)處理胶哲。
本章內(nèi)容已經(jīng)上傳到碼云:
SpringBoot配套源碼地址:https://gitee.com/hengboy/spring-boot-chapter
SpringCloud配套源碼地址:https://gitee.com/hengboy/spring-cloud-chapter
SpringBoot相關(guān)系列文章請(qǐng)?jiān)L問:目錄:SpringBoot學(xué)習(xí)目錄
QueryDSL相關(guān)系列文章請(qǐng)?jiān)L問:QueryDSL通用查詢框架學(xué)習(xí)目錄
SpringDataJPA相關(guān)系列文章請(qǐng)?jiān)L問:目錄:SpringDataJPA學(xué)習(xí)目錄
SpringBoot相關(guān)文章請(qǐng)?jiān)L問:目錄:SpringBoot學(xué)習(xí)目錄,感謝閱讀外傅!
歡迎微信掃碼加入知識(shí)星球纪吮,恒宇少年帶你走以后的技術(shù)道路!N取碾盟!
知識(shí)星球 - 恒宇少年