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)文章
Java數(shù)據(jù)結(jié)構(gòu)之棧的線性結(jié)構(gòu)詳解
從數(shù)據(jù)結(jié)構(gòu)上看棧和隊列都是線性表,不過是兩種特殊的線性表,棧只允許在的一端進行插人或刪除操作,而隊列只允許在表的一端進行插人操作、而在另一端進行刪除操作,這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)結(jié)構(gòu)之棧的線性結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2021-08-08
springboot通用分支處理超級管理員權(quán)限邏輯
這篇文章主要為大家介紹了springboot通用分支處理超級管理員的權(quán)限邏輯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
Java求兩個正整數(shù)的最大公約數(shù)和最小公倍數(shù)
這篇文章主要介紹了輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù),需要的朋友可以參考下2017-02-02

