配置靜態(tài)資源路徑static-locations再菊、static-path-pattern

實(shí)際開(kāi)發(fā)靜態(tài)資源 html期升、js婚惫、圖片 肯定是放在各自文件夾下面的
參考鏈接

一、淺析 static-locations贰逾、static-path-pattern

  • spring.mvc.static-path-pattern
    從 WebMvcAutoConfiguration -> WebMvcAutoConfigurationAdapter -> WebMvcProperties 中可以看出默認(rèn)是 /** 替劈,根據(jù)官網(wǎng)的描述和實(shí)際效果靠欢,可以理解為靜態(tài)文件URL匹配頭舵匾,也就是靜態(tài)文件的URL地址開(kāi)頭。
private String staticPathPattern = "/**";
  • spring.web.resources.static-locations
    從 WebMvcAutoConfiguration -> WebMvcAutoConfigurationAdapter -> WebProperties -> Resources 中可以看出默認(rèn)是 "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"诡曙,根據(jù)官網(wǎng)的描述和實(shí)際效果,可以理解為實(shí)際靜態(tài)文件地址略水,也就是靜態(tài)文件URL后价卤,匹配的實(shí)際靜態(tài)文件。
 private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
        private String[] staticLocations;
        private boolean addMappings;
        private boolean customized;
        private final WebProperties.Resources.Chain chain;
        private final WebProperties.Resources.Cache cache;

        public Resources() {
            this.staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
            this.addMappings = true;
            this.customized = false;
            this.chain = new WebProperties.Resources.Chain();
            this.cache = new WebProperties.Resources.Cache();
        }

        public String[] getStaticLocations() {
            return this.staticLocations;
        }

        public void setStaticLocations(String[] staticLocations) {
            this.staticLocations = this.appendSlashIfNecessary(staticLocations);
            this.customized = true;
        }

二聚请、 項(xiàng)目根目錄下新建靜態(tài)文件夾

demo地址

  • SystemData/UserData/Avatar/p1.png
root-static.png

1、 application.properties

  • 分別設(shè)置 spring.mvc.static-path-pattern spring.web.resources.static-locations
  • 請(qǐng)注意static-locations中的file:SystemData就是映射本地文件
spring.mvc.static-path-pattern=/SystemData/**
spring.web.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,file:SystemData
proone.png

2稳其、效果展示

showOne.png

三驶赏、static 文件下 繼續(xù)分文件

demo 地址

config2.png
error.png

可以訪問(wèn):
http://localhost:8080/JS/1.js
http://localhost:8080/Image/1.png
http://localhost:8080/JS/1.html

ok.png

3嘱蛋、 1.js 1.png 1.html 和 2.js 一樣直接訪問(wèn)

設(shè)置 spring.web.resources.static-locations

  • classpath:/static/JS
  • classpath:/static/Image
  • classpath:/static/HTML
spring.web.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,classpath:/static/JS,classpath:/static/Image,classpath:/static/HTML
config.png

3.1 蚯姆、http://localhost:8080/1.jshttp://localhost:8080/1.png洒敏、http://localhost:8080/1.html 可以直接訪問(wèn)了

ok.png

四龄恋、需要設(shè)置多個(gè)地址為靜態(tài)資源目錄

demo地址

這樣的配置,可以說(shuō)最簡(jiǎn)單且粗暴凶伙,但是靈活性差一點(diǎn)點(diǎn):

URL響應(yīng)地址只能為一項(xiàng)郭毕,也就是spring.mvc.static-path-pattern配置只能寫一項(xiàng)。
這意味著函荣,按我上文設(shè)置了/SystemData/為URL匹配显押,就不能設(shè)置第二個(gè)/resources/這樣的配置為第二靜態(tài)目錄。

many.png

寫一個(gè)配置類傻挂,實(shí)現(xiàn)靜態(tài)資源的文件夾方法很多乘碑。比如:
繼承于WebMvcConfigurationSupport父類,并實(shí)現(xiàn)addResourceHandlers方法金拒。
引用WebMvcConfigurer接口兽肤,并實(shí)現(xiàn)addInterceptors方法

1、實(shí)現(xiàn)一個(gè)一個(gè)配置類绪抛,并繼承WebMvcConfigurationSupport轿衔,實(shí)現(xiàn)addResourceHandlers方法,并打上@Configuration注解睦疫,使其成為配置類:

package com.example.springboot02staticconfig03.Config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

    // System.getProperty("user.dir")  當(dāng)前程序所在目錄
    static final String IMG_PATH = System.getProperty("user.dir")+"/SystemData/";
    static final String IMG_PATH_TWO = System.getProperty("user.dir")+"/Test/";

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 靜態(tài)資源映射
        registry.addResourceHandler("/SystemData/**").addResourceLocations("file:"+IMG_PATH);
        registry.addResourceHandler("/Test/**").addResourceLocations("file:"+IMG_PATH_TWO);
        super.addResourceHandlers(registry);
    }
}

config.png

2害驹、實(shí)現(xiàn)效果

現(xiàn)在我們就來(lái)配置。 最終效果很簡(jiǎn)單蛤育,我想要的效果(兩組同時(shí)):

瀏覽器輸入:http://localhost:8080/SystemData/UserData/Avatar/1.png
可以直接訪問(wèn)項(xiàng)目文件下的:/SystemData/UserData/Avatar/1.png宛官,

瀏覽器輸入:http://localhost:8080/Test/UserData/Avatar/2.png
可以直接訪問(wèn)項(xiàng)目文件下的:/Test/UserData/Avatar/2.png葫松,

1.png
2.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市底洗,隨后出現(xiàn)的幾起案子腋么,更是在濱河造成了極大的恐慌,老刑警劉巖亥揖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件珊擂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡费变,警方通過(guò)查閱死者的電腦和手機(jī)摧扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)挚歧,“玉大人扛稽,你說(shuō)我怎么就攤上這事』海” “怎么了在张?”我有些...
    開(kāi)封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)矮慕。 經(jīng)常有香客問(wèn)我帮匾,道長(zhǎng),這世上最難降的妖魔是什么痴鳄? 我笑而不...
    開(kāi)封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任辟狈,我火速辦了婚禮,結(jié)果婚禮上夏跷,老公的妹妹穿的比我還像新娘哼转。我一直安慰自己,他們只是感情好槽华,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布壹蔓。 她就那樣靜靜地躺著,像睡著了一般猫态。 火紅的嫁衣襯著肌膚如雪佣蓉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天亲雪,我揣著相機(jī)與錄音勇凭,去河邊找鬼。 笑死义辕,一個(gè)胖子當(dāng)著我的面吹牛虾标,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播灌砖,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼璧函,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼傀蚌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蘸吓,我...
    開(kāi)封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤善炫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后库继,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箩艺,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年宪萄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了艺谆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雨膨,死狀恐怖擂涛,靈堂內(nèi)的尸體忽然破棺而出读串,到底是詐尸還是另有隱情聊记,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布恢暖,位于F島的核電站排监,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏杰捂。R本人自食惡果不足惜舆床,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嫁佳。 院中可真熱鬧挨队,春花似錦、人聲如沸蒿往。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瓤漏。三九已至腾夯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔬充,已是汗流浹背蝶俱。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饥漫,地道東北人榨呆。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像庸队,于是被迫代替她去往敵國(guó)和親愕提。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馒稍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容