springboot設(shè)置加載靜態(tài)資源的路徑(spring.resources.static-locations)
springboot設(shè)置加載靜態(tài)資源的路徑
默認Springboot將從如下位置按如下優(yōu)先級(從高到低)加載jar包對應(yīng)前端靜態(tài)資源:
- 1.jar包同級static目錄
- 2.jar包同級public目錄
- 3.jar包同級resource目錄
- 4.jar包/META-INF/resources
在調(diào)試模式下,Springboot將從class目錄中按如下優(yōu)先級(從高到低)加載對應(yīng)前端靜態(tài)資源
- 1.class目錄下static目錄
- 2.class目錄下public目錄
- 3.class目錄下resource目錄
- 4.class目錄下/META-INF/resources
通過設(shè)置spring.resources.static-locations自定義Spring boot加載前端靜態(tài)資源路徑
spring.resources.static-locations: file:D:/public/
亦可以指定先后順序:
spring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resource
如果指定了攔截器,該屬性有可能失效
需要在攔截器ResourceHandlerRegistry中通過addLocations()指定對應(yīng)路徑。
如果指定@EnableWebMvc注解也會導(dǎo)致spring.resources.static-locations失效。
如果使用@EnableWebMvc,會自動覆蓋原有靜態(tài)文件目錄為src/main/webapp,如果要指定原靜態(tài)文件目錄,需重寫addResourceHandlers方法
springboot靜態(tài)資源管理
說明
在默認情況下,Spring Boot 將通過類加載路徑下的/static/(或/public/、/META-INF/resources/、/resources/)目錄或應(yīng)用的根路徑來提供靜態(tài)資源,因此,對于大部分應(yīng)用而言,開發(fā)者只要將JS腳本、CSS樣式單、圖片等靜態(tài)資源統(tǒng)一放在類加載路徑下的/static/或/public/、/META-INF/resources/、/resources/即可。
關(guān)注點
1.自動配置類WebMvcProperties,使用application.yml可以配置靜態(tài)資源訪問路徑
spring.mvc.static-path-pattern默認值為/,可以修改為自己指定的訪問路徑比如:/cs/,則訪問靜態(tài)資源路徑必須帶/cs/
2.自動配置類WebProperties,使用application.yml可以配置靜態(tài)資源位置路徑
spring.web.resources.static-locations默認值為
{ “classpath:/META-INF/resources/”,“classpath:/resources/”, “classpath:/static/”, “classpath:/public/” }(路徑優(yōu)先級從高到底),
則資源位置路徑可以自己定義,例如:classpath:/csResources/,則src/main/resources/目錄下建csResources文件夾存儲靜態(tài)資源
3.可以實現(xiàn)WebMvcConfigurer接口并重寫該類的addResourceHandlers方法來實現(xiàn),例如:
@Configuration //public class WebMvcConfiger extends WebMvcConfigurerAdapter { public class WebMvcConfiger implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/"); registry.addResourceHandler("/theme/**").addResourceLocations("classpath:/static/theme/"); } }
4.Spring Boot 也支持加載WebJar包中的靜態(tài)資源,WebJar包中的靜態(tài)資源都會被映射到/webjar/**路徑下。
比如在應(yīng)用的某個JAR包中包含js/abc.js,那么它實際的映射地址就是/webjars/js/abc.js(WebJar是一種將前端資源(如JS庫、CSS樣式單、圖片等)打包到JAR中,然后使用基于JVM的包管理器來管理前端依賴的方案)。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決SpringBoot2.1.0+RocketMQ版本沖突問題
這篇文章主要介紹了解決SpringBoot2.1.0+RocketMQ版本沖突問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Maven根據(jù)不同環(huán)境打包不同配置文件的方法
這篇文章主要介紹了Maven根據(jù)不同環(huán)境打包不同配置文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08用3個實例從原理到實戰(zhàn)講清楚Log4j史詩級漏洞
最近應(yīng)該很多人都在關(guān)注著一個漏洞Apache Log4j 2遠程代碼執(zhí)行,該漏洞一旦被攻擊者利用會造成嚴重危害,這篇文章主要給大家介紹了關(guān)于如何用3個實例從原理到實戰(zhàn)講清楚Log4j史詩級漏洞的相關(guān)資料,需要的朋友可以參考下2021-12-12Mybatis使用@one和@Many實現(xiàn)一對一及一對多關(guān)聯(lián)查詢
本文主要介紹了Mybatis使用@one和@Many實現(xiàn)一對一及一對多關(guān)聯(lián)查詢,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Java 使用openoffice進行word轉(zhuǎn)換為pdf的方法步驟
這篇文章主要介紹了Java 使用openoffice進行word轉(zhuǎn)換為pdf的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Gradle build 報錯:Received status code 400 from server
這篇文章主要介紹了Gradle build 報錯:Received status code 400 from server,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Java HTTP協(xié)議收發(fā)MQ 消息代碼實例詳解
這篇文章主要通過實例代碼為大家詳細介紹了如何在Java 環(huán)境下使用 HTTP 協(xié)議收發(fā) MQ 消息,需要的朋友可以參考下2017-04-04