springboot設(shè)置加載靜態(tài)資源的路徑(spring.resources.static-locations)
springboot設(shè)置加載靜態(tài)資源的路徑
默認(rèn)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注解也會(huì)導(dǎo)致spring.resources.static-locations失效。
如果使用@EnableWebMvc,會(huì)自動(dòng)覆蓋原有靜態(tài)文件目錄為src/main/webapp,如果要指定原靜態(tài)文件目錄,需重寫addResourceHandlers方法
springboot靜態(tài)資源管理
說明
在默認(rèn)情況下,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)注點(diǎn)
1.自動(dòng)配置類WebMvcProperties,使用application.yml可以配置靜態(tài)資源訪問路徑
spring.mvc.static-path-pattern默認(rèn)值為/,可以修改為自己指定的訪問路徑比如:/cs/,則訪問靜態(tài)資源路徑必須帶/cs/
2.自動(dòng)配置類WebProperties,使用application.yml可以配置靜態(tài)資源位置路徑
spring.web.resources.static-locations默認(rèn)值為
{ “classpath:/META-INF/resources/”,“classpath:/resources/”, “classpath:/static/”, “classpath:/public/” }(路徑優(yōu)先級從高到底),
則資源位置路徑可以自己定義,例如:classpath:/csResources/,則src/main/resources/目錄下建csResources文件夾存儲(chǔ)靜態(tài)資源
3.可以實(shí)現(xiàn)WebMvcConfigurer接口并重寫該類的addResourceHandlers方法來實(shí)現(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)資源都會(huì)被映射到/webjar/**路徑下。
比如在應(yīng)用的某個(gè)JAR包中包含js/abc.js,那么它實(shí)際的映射地址就是/webjars/js/abc.js(WebJar是一種將前端資源(如JS庫、CSS樣式單、圖片等)打包到JAR中,然后使用基于JVM的包管理器來管理前端依賴的方案)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
單臺(tái)Spring Cloud Eureka升級到三臺(tái)Eureka高可用集群
今天小編就為大家分享一篇關(guān)于單臺(tái)Spring Cloud Eureka升級到三臺(tái)Eureka高可用集群,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
java中利用反射調(diào)用另一類的private方法的簡單實(shí)例
下面小編就為大家?guī)硪黄猨ava中利用反射調(diào)用另一類的private方法的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
mybatis-generator-gui根據(jù)需求改動(dòng)示例
這篇文章主要為大家介紹了mybatis-generator-gui根據(jù)需求改動(dòng)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
mybatis plus動(dòng)態(tài)數(shù)據(jù)源切換及查詢過程淺析
這篇文章主要介紹了mybatis plus動(dòng)態(tài)數(shù)據(jù)源切換及查詢過程淺析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Jboss Marshalling服務(wù)端無法接受消息
這篇文章主要介紹了Jboss Marshalling服務(wù)端無法接受消息,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

