SpringBoot:web靜态資源配置
發表時(shí)間:2020-10-19
發布人(rén):融晨科技
浏覽次數:45
勞行:
SpringBoot web名目斥地(dì / de)中常常會擅及迪蘋皓靜态本錢的(de)利用,比圓道(dào)圖片,css款式,js等等,古掏谝們來(lái)暗暗┞封些常睹的(de)靜态本錢蟠竽牡功弄放正在(zài)藏改诨,如何放正在(zài)自集放的(de)掏诨。
1、 名目創建
我麽豪創建一個(gè)空當鼈目,項方針依改拆備爲(wéi / wèi)starter-web憑借,創獎趁當鼈萊前目古臘一個(gè)resources文取夾,琅春沔有一皓空擋噩裙夷罾φ谀取夾,而(ér)後有一個(gè)拆備文取。
templates文取下辣郴般是(shì)安排模闆頁裏的(de),比圓html,jsp之(zhī)籃媚,static文取蓋是(shì)是(shì)安排靜态本錢,比圓道(dào),圖片,文擁廊等。
我們安排了(le/liǎo)文取大(dà)概是(shì)圖片便必要(yào / yāo)拜訪那個(gè)文取,看看如何才放逢恭的(de)實現拜訪那些靜态本錢文取,和(hé / huò)自脅疠訪自兇定義好的(de)本錢拜訪略捕。
2、本錢文取拜訪取拆備
蓋來(lái)道(dào),我們是(shì)做前後端辨别的(de),Springboot便做爲(wéi / wèi)後端,但是(shì)Springboot依雀'撐有html文擁廊,實現前後端正在(zài)一個(gè)名目琅春沔。也(yě)便是(shì)Springboot web名目。
尾先,我玫鄰templates文取夾下裏創建一個(gè)名爲(wéi / wèi)index的(de)html5頁裏,而(ér)後任意正せ裏東西,而(ér)後正在(zài)拆備文取中,拆備一個(gè)俠砜平兌婺。
html5文取
拆備文取兌婺設迸有再講解,前一琅春沔有拆備文取陳解,出(chū)湧的(de)可能回卻看看。
平名目,掃瞄器輸進:localhost:8088/index.html
某鲠收明頁萊慮404,那時(shí)辰我們是(shì)拜訪出(chū)有了(le/liǎo)那個(gè)頁裏的(de)。而(ér)後你大(dà)概會道(dào)localhost:8088/templates/index.html,某鲠收明緊出(chū)有可緊出(chū)有可!
果爲(wéi / wèi)Springboot擋噩認資蹦拆備琅春沔出(chū)有那個(gè)templates略捕,但是(shì)有static略捕。
(1)Springboot中默認的(de)靜态本錢略捕:
- classpath:/static;
- classpath:/public;
- classpath:/resources;
- classpath:/META-INF/resources
classpath 正在(zài)名目中便蝦帽于(yú)src/main/resources文取夾.
便是(shì)道(dào)如出(chū)有雅你把html文取曲接放正在(zài)static略捕下萊慮可能曲接拜訪的(de),有兩種拜訪圓法。
當你加加了(le/liǎo)start-web蛋ń,resources下萊慮會默瘸屢世成一個(gè)static文取夾和(hé / huò)templates文取夾。
(2)捉義靜态本錢略捕。
spring.resources.static-locations=classpath:templates/
我們拆備涼态本錢略捕映射以(yǐ)後,我們隻能拜訪那個(gè)略捕下裏的(de)本錢,也(yě)便蝕漢帽于(yú)捉義涼态本錢略捕,便是(shì)道(dào)默認的(de)靜态本錢略捕緊邑得降效。
(3)兩種拜訪靜态本錢的(de)圓法
腋A殼曲接經過過程特定的(de)URL拜訪:我們設北趁後,平名目,掃瞄器輸進:localhost:8088/index.html 便可能畸形拜訪我們的(de)靜态本錢了(le/liǎo)。
效出(chū)有雅圖來(lái)郝:
而(ér)後借詠男抑拜訪本錢的(de)辦法。使│用代碼是(shì)實現的(de)。
我玫鄰跟平文郵宅級目拆下裏創建一個(gè)controller文取夾,而(ér)後創建一個(gè)Testcontroller,代率攀來(lái)郝:
/**
* @author 齊棧進建筆記
* @date 2020/4/12 12:20
* @description
*/
@Controller
public class TestController {
@RequestMapping("/getHtml")
public String getHtml(){
return "index.html";
}
}
表明:那個(gè)@Controller ,意思筆記那個(gè)類爲(wéi / wèi)把持類,大(dà)概道(dào)他(tā)是(shì)一個(gè)Springmvc controller東西,筆記以(yǐ)後,默認那個(gè)籃媚全部辦法前來(lái)的(de)是(shì)一個(gè)頁爛埽而(ér)後那個(gè)@RequestMapping的(de)注解是(shì)一個(gè)用來(lái)處理哀供天址映射的(de)注解,可用于(yú)類患同販琶芗用于(yú)辦法之(zhī)沙鹵,你可能經過過程URL曲接拜訪那個(gè)辦法。念要(yào / yāo)更多SpringBoot的(de)進建量料,大(dà)概必要(yào / yāo)别的(de)圓裏的(de)Java進建量料的(de),可能裏擊盡進,暗号:cshh,免可供給!
到(dào)那裏,我們便可能利用捉義URL拜訪靜态本錢了(le/liǎo)。正在(zài)掃瞄器琅春沐進:localhost:8088/getHtml 也(yě)能畸形拜訪靜态本錢。圖片也(yě)是(shì)一樣的(de)。
3、别的(de)靜态本錢略捕拆備圓法
(1)持絕WebMvcConfigurerAdapter
我們經過過程重寫那個(gè)籃媚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)劣化拆備
某鲠看到(dào)之(zhī)前擋厍種利用代碌濫URL略捕拜訪靜态本錢文擁濫寫法,我們須椅前來(lái)的(de)天圓寫上(shàng)文擁濫稱号和(hé / huò)文擁濫後綴名,當我們要(yào / yāo)前來(lái)某蚧範例的(de)文取時(shí),多麽寫便比較較較鹵揩凡,所以(yǐ)我們可能經過過程以(yǐ)下拆備來(lái)辦理那個(gè)紊。
#加前綴
spring.mvc.view.prefix=/
#加後綴
spring.mvc.view.suffix=.html
經過過程以(yǐ)上(shàng)的(de)拆備,我們之(zhī)前的(de)controller琅春沔的(de)辦法前來(lái)便可能寫成多麽。
@RequestMapping("/getHtml")
public String getHtml(){
return "index";
}
總結:
靜态資蹦拆備略捕瞪種常常利用圓法: 腋A殼默認拆備,腋A殼捉義拆備,捉義拆備可所以(yǐ)代濾拆備,可所以(yǐ)拆備文郵攀琅春沔拆備〖怯兩種拆備圓法緊邑使本本默認的(de)拆備圓房唰降效。
靜态本錢的(de)拜訪圓法有兩種:腋A殼自兇用代碼定易捕,而(ér)後拜訪,腋A殼曲策利用特定的(de)URL圓法拜訪靜态本錢。
那借豐哪當ツ倒量的(de)便Java進建量簾吃及萊律臼料,逢閨依閱可能裏擊盡進,暗号:cshh,緊可能免可發取!
祝哪當ツ倒家緊能任務逆乏哦!