成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:10日期:2023-04-16 08:14:55

引言:

SpringBoot web項(xiàng)目開發(fā)中往往會(huì)涉及到一些靜態(tài)資源的使用,比如說圖片,css樣式,js等等,今天我們來講講這些常見的靜態(tài)資源應(yīng)該放在哪個(gè)位置,怎么放在自己想放的位置。

1、 項(xiàng)目創(chuàng)建

我們先創(chuàng)建一個(gè)空的項(xiàng)目,項(xiàng)目的依賴配置為starter-web依賴,創(chuàng)建好的項(xiàng)目下面有一個(gè)resources文件夾,里面有一些空的默認(rèn)的文件夾,然后有一個(gè)配置文件。

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

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

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

2、資源文件訪問與配置

一般來說,我們是做前后端分離的,Springboot就作為后端,但是Springboot依然支持有html文件等,實(shí)現(xiàn)前后端在一個(gè)項(xiàng)目里面。也就是Springboot web項(xiàng)目。

首先,我們?cè)趖emplates文件夾下面創(chuàng)建一個(gè)名為index的html5頁面,然后隨便寫一點(diǎn)東西,然后在配置文件中,配置一個(gè)項(xiàng)目啟動(dòng)端口。

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

配置文件端口配置不再講解,前一期里面有配置文件詳解,不會(huì)的可以回去看看。啟動(dòng)項(xiàng)目,瀏覽器輸入:localhost:8088/index.html你會(huì)發(fā)現(xiàn)頁面是404,這時(shí)候我們是訪問不了這個(gè)頁面的。然后你可能會(huì)說localhost:8088/templates/index.html,你會(huì)發(fā)現(xiàn)都不行都不行!

因?yàn)镾pringboot的默認(rèn)資源配置里面沒有這個(gè)templates路徑,但是有static路徑。

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

classpath:/static; classpath:/public; classpath:/resources; classpath:/META-INF/resources

classpath 在項(xiàng)目中就相當(dāng)于src/main/resources文件夾.

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

當(dāng)你添加了start-web的依賴,resources下面是會(huì)默認(rèn)生成一個(gè)static文件夾以及templates文件夾。

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

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

我們配置了靜態(tài)資源路徑映射之后,我們只能訪問這個(gè)路徑下面的資源,也就是相當(dāng)于自定義了靜態(tài)資源路徑,就是說默認(rèn)的靜態(tài)資源路徑都會(huì)失效。

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

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

效果圖如下:

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

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

我們?cè)诤蛦?dòng)文件同級(jí)目錄下面創(chuàng)建一個(gè)controller文件夾,然后創(chuàng)建一個(gè)Testcontroller,代碼如下:

/** * @author 全棧學(xué)習(xí)筆記 * @date 2020/4/12 12:20 * @description */@Controllerpublic class TestController { @RequestMapping('/getHtml') public String getHtml(){ return 'index.html'; }}

說明:這個(gè)@Controller ,意思標(biāo)記這個(gè)類為控制類,或者說他是一個(gè)Springmvc controller對(duì)象,標(biāo)記之后,默認(rèn)這個(gè)類的所有方法返回的是一個(gè)頁面。然后這個(gè)@RequestMapping的注解是一個(gè)用來處理請(qǐng)求地址映射的注解,可用于類或方法上。用于方法之上時(shí),你可以通過URL直接訪問這個(gè)方法。

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

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

(1)繼承WebMvcConfigurerAdapter

我們通過重寫這個(gè)類的addResourceHandlers方法,定義資源路徑

/** * @author 全棧學(xué)習(xí)筆記 * @date 2020/4/12 15:46 * @description */@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler('/**').addResourceLocations('/','classpath:templates/'); super.addResourceHandlers(registry); }}

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

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

#加前綴spring.mvc.view.prefix=/#加后綴spring.mvc.view.suffix=.html

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

@RequestMapping('/getHtml') public String getHtml(){ return 'index'; }

總結(jié):

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

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

到此這篇關(guān)于SpringBoot web靜態(tài)資源配置詳解的文章就介紹到這了,更多相關(guān)SpringBoot web靜態(tài)資源內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章: