SpringBoot:web靜態(tài)資源配置

1、 項目創(chuàng)建

我們先創(chuàng)建一個空的項目忆蚀,項目的依賴配置為starter-web依賴衷快,創(chuàng)建好的項目下面有一個resources文件夾截珍,里面有一些空的默認的文件夾,然后有一個配置文件吞瞪。

templates文件下面一般是放置模板頁面的馁启,比如html,jsp之類的,static文件一般是是放置靜態(tài)資源惯疙,比如說翠勉,圖片,文件等等霉颠。

我們放置了文件或者是圖片就需要訪問這個文件对碌,看看怎么才能有效的實現(xiàn)訪問這些靜態(tài)資源文件,以及自己訪問自己定義好的資源訪問路徑蒿偎。

2朽们、資源文件訪問與配置

一般來說,我們是做前后端分離的诉位,Springboot就作為后端骑脱,但是Springboot依然支持有html文件等,實現(xiàn)前后端在一個項目里面苍糠。也就是Springboot web項目叁丧。

首先,我們在templates文件夾下面創(chuàng)建一個名為index的html5頁面岳瞭,然后隨便寫一點東西拥娄,然后在配置文件中,配置一個項目啟動端口瞳筏。

html5文件

配置文件端口配置不再講解稚瘾,前一期里面有配置文件詳解,不會的可以回去看看姚炕。

啟動項目摊欠,瀏覽器輸入:localhost:8088/index.html

你會發(fā)現(xiàn)頁面是404,這時候我們是訪問不了這個頁面的钻心。然后你可能會說localhost:8088/templates/index.html凄硼,你會發(fā)現(xiàn)都不行都不行!

因為Springboot的默認資源配置里面沒有這個templates路徑捷沸,但是有static路徑摊沉。

(1)Springboot中默認的靜態(tài)資源路徑:

1. classpath:/static;

2. classpath:/public痒给;

3. classpath:/resources说墨;

4. classpath:/META-INF/resources

classpath 在項目中就相當于src/main/resources文件夾.

就是說如果你把html文件直接放在static路徑下面是可以直接訪問的,有兩種訪問方式苍柏。

當你添加了start-web的依賴尼斧,resources下面是會默認生成一個static文件夾以及templates文件夾。

(2)自定義靜態(tài)資源路徑试吁。

spring.resources.static-locations=classpath:templates/

我們配置了靜態(tài)資源路徑映射之后棺棵,我們只能訪問這個路徑下面的資源楼咳,也就是相當于自定義了靜態(tài)資源路徑,就是說默認的靜態(tài)資源路徑都會失效烛恤。

(3)兩種訪問靜態(tài)資源的方式

一種是直接通過特定的URL訪問:我們配置好后母怜,啟動項目,瀏覽器輸入:localhost:8088/index.html 就可以正常訪問我們的靜態(tài)資源了缚柏。

效果圖如下:

然后還有一種訪問資源的方法苹熏。是使用代碼是實現(xiàn)的。

我們在和啟動文件同級目錄下面創(chuàng)建一個controller文件夾币喧,然后創(chuàng)建一個Testcontroller,代碼如下:

/**

* @author 全棧學習筆記

* @date 2020/4/12 12:20

* @description

*/

@Controller

public class TestController {

? ? @RequestMapping("/getHtml")

? ? public String getHtml(){

? ? ? ? return "index.html";

? ? }

}

說明:這個@Controller 轨域,意思標記這個類為控制類,或者說他是一個Springmvc controller對象杀餐,標記之后干发,默認這個類的所有方法返回的是一個頁面。然后這個@RequestMapping的注解是一個用來處理請求地址映射的注解怜浅,可用于類或方法上铐然。用于方法之上時蔬崩,你可以通過URL直接訪問這個方法恶座。想要更多SpringBoot的學習資料,或者需要其他方面的Java學習資料的沥阳,可以點擊進入跨琳,暗號:jszz,免費提供桐罕!

到這里脉让,我們就可以利用自定義URL訪問靜態(tài)資源了。在瀏覽器里面輸入:localhost:8088/getHtml 也能正常訪問靜態(tài)資源功炮。圖片也是一樣的溅潜。

3、其他靜態(tài)資源路徑配置方式

(1)繼承WebMvcConfigurerAdapter

我們通過重寫這個類的addResourceHandlers方法薪伏,定義資源路徑

/**

* @author 全棧學習筆記

* @date 2020/4/12 15:46

* @description

*/

@Configuration

public class WebConfig extends WebMvcConfigurerAdapter {

? ? @Override

? ? public void addResourceHandlers(ResourceHandlerRegistry registry) {

? ? ? ? registry.addResourceHandler("/**").addResourceLocations("/","classpath:templates/");

? ? ? ? super.addResourceHandlers(registry);

? ? }

}

(2)優(yōu)化配置

你會看到之前的那種利用代碼的URL路徑訪問靜態(tài)資源文件的寫法滚澜,我們需要在返回的地方寫上文件的名稱以及文件的后綴名,當我們要返回某一類型的文件時嫁怀,這樣寫就相對比較麻煩设捐,所以我們可以通過以下配置來解決這個問題。

#加前綴

spring.mvc.view.prefix=/

#加后綴

spring.mvc.view.suffix=.html

通過以上的配置塘淑,我們之前的controller里面的方法返回就可以寫成這樣萝招。

@RequestMapping("/getHtml")

? ? public String getHtml(){

? ? ? ? return "index";

? ? }

總結(jié):

靜態(tài)資源配置路徑的兩種常用方式: 一種是默認配置,一種是自定義配置存捺,自定義配置可以是代碼配置槐沼,可以是配置文件里面配置。這兩種配置方式都會使原來默認的配置方式失效。

靜態(tài)資源的訪問方式有兩種:一種是自己用代碼定義路徑岗钩,然后訪問逸爵,一種是直接利用特定的URL方式訪問靜態(tài)資源。

這還有大量的就Java學習資料以及面試資料凹嘲,有需要的可以點擊進入师倔,暗號:jszz,都可以免費領(lǐng)戎懿洹趋艘!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凶朗,隨后出現(xiàn)的幾起案子瓷胧,更是在濱河造成了極大的恐慌,老刑警劉巖棚愤,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搓萧,死亡現(xiàn)場離奇詭異,居然都是意外死亡宛畦,警方通過查閱死者的電腦和手機瘸洛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來次和,“玉大人反肋,你說我怎么就攤上這事√な” “怎么了石蔗?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畅形。 經(jīng)常有香客問我养距,道長,這世上最難降的妖魔是什么日熬? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任棍厌,我火速辦了婚禮,結(jié)果婚禮上碍遍,老公的妹妹穿的比我還像新娘定铜。我一直安慰自己,他們只是感情好怕敬,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布揣炕。 她就那樣靜靜地躺著,像睡著了一般东跪。 火紅的嫁衣襯著肌膚如雪畸陡。 梳的紋絲不亂的頭發(fā)上鹰溜,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音丁恭,去河邊找鬼曹动。 笑死,一個胖子當著我的面吹牛牲览,可吹牛的內(nèi)容都是我干的墓陈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼第献,長吁一口氣:“原來是場噩夢啊……” “哼贡必!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起庸毫,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仔拟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后飒赃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體利花,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年载佳,在試婚紗的時候發(fā)現(xiàn)自己被綠了炒事。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡刚盈,死狀恐怖羡洛,靈堂內(nèi)的尸體忽然破棺而出挂脑,到底是詐尸還是另有隱情藕漱,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布崭闲,位于F島的核電站肋联,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏刁俭。R本人自食惡果不足惜橄仍,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牍戚。 院中可真熱鬧侮繁,春花似錦、人聲如沸如孝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽第晰。三九已至锁孟,卻和暖如春彬祖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背品抽。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工储笑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人圆恤。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓突倍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盆昙。 傳聞我的和親對象是個殘疾皇子赘方,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359