最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解讀靜態(tài)資源訪問static-locations和static-path-pattern

 更新時(shí)間:2025年01月30日 07:51:09   作者:學(xué)習(xí)中的小亮  
本文主要介紹了Spring Boot中靜態(tài)資源的配置和訪問方式,包括靜態(tài)資源的默認(rèn)前綴、默認(rèn)地址、目錄結(jié)構(gòu)、訪問路徑以及靜態(tài)資源處理器的工作原理,通過配置文件和實(shí)現(xiàn)`WebMvcConfigurer`接口,可以自定義靜態(tài)資源目錄和訪問前綴

靜態(tài)資源訪問static-locations和static-path-pattern

靜態(tài)資源配置底層源碼

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		if (!this.resourceProperties.isAddMappings()) {
			logger.debug("Default resource handling disabled");
				return;
		}
        //配置訪問地址為/webjars/**時(shí),去/META-INF/resources/webjars文件夾下尋找資源
		addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
		addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
				            
        registration.addResourceLocations(this.resourceProperties.getStaticLocations());
		if (this.servletContext != null) {
				ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
				registration.addResourceLocations(resource);
		}
			});
		}

靜態(tài)資源默認(rèn)前綴:

private String staticPathPattern = "/**";

靜態(tài)資源默認(rèn)地址:

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/",
				"classpath:/resources/", "classpath:/static/", "classpath:/public/" };

		/**
		 * Locations of static resources. Defaults to classpath:[/META-INF/resources/,
		 * /resources/, /static/, /public/].
		 */
private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS;

靜態(tài)資源目錄

如果每個(gè)目錄下面都有相同的文件,那么訪問的優(yōu)先級(jí)為 META-INF>resources>static>public

靜態(tài)資源訪問前綴(默認(rèn)無前綴)可以使用下面的yaml內(nèi)容來設(shè)置

spring:
  mvc:
    static-path-pattern: /liang/**  //會(huì)導(dǎo)致歡迎頁和favicon.ico失效

靜態(tài)資源存放地址(靜態(tài)文件只能存放在文件夾yuan里面)

spring:
  web:
    resources:
      static-locations: classpath:/yuan/

當(dāng)配置文件如下

spring
  web:
    resources:
      static-locations: classpath:/yuan/
  mvc:
    static-path-pattern: /liang/**

可以直接通過地址 http://localhost:8080/liang/a.png 直接進(jìn)行訪問,查看到想要結(jié)果

當(dāng)靜態(tài)訪問前綴為/**時(shí),靜態(tài)資源目錄下有一個(gè)a.png,controller控制層的@RequestMapping("/a.png")。

得到結(jié)果

結(jié)論:請(qǐng)求進(jìn)來,先去controller看能不能處理,不能處理的所有請(qǐng)求又都交給靜態(tài)資源處理器。靜態(tài)資源找不到就報(bào)404

為什么歡迎頁(index.html)有靜態(tài)資源訪問前綴就不能訪問了

通過 http://localhost:8080/liang/index.html可以直接訪問到界面,但是通過 http://localhost:8080/liang 或者 http://localhost:8080/ 都不能直接訪問到index。

但是如果把靜態(tài)資源訪問前綴去除,就可以通過 http://localhost:8080/ 訪問到index.html了.

這是因?yàn)榈讓幼隽颂幚?/p>

實(shí)現(xiàn)WebMvcConfigurer接口

會(huì)把自定義配置加載到默認(rèn)的配置中

@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //registry.addResourceHandler("訪問的路徑").addResourceLocations("資源的路徑");
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
    }

配置文件中靜態(tài)資源目錄為

可以簡(jiǎn)單理解為:實(shí)現(xiàn)WebMvcConfigurer接口,可以把自己自定義的一些配置加載到系統(tǒng)的默認(rèn)配置中

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot項(xiàng)目賬戶注冊(cè)邏輯功能實(shí)現(xiàn)

    springboot項(xiàng)目賬戶注冊(cè)邏輯功能實(shí)現(xiàn)

    這篇文章主要介紹了springboot項(xiàng)目賬戶注冊(cè)邏輯功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • Java實(shí)現(xiàn)視頻初步壓縮和解壓的代碼示例

    Java實(shí)現(xiàn)視頻初步壓縮和解壓的代碼示例

    從攝像頭讀取每一幀的圖片,用一些簡(jiǎn)單的方法將多張圖片信息壓縮到一份文件中(自定義的視頻文件),自定義解碼器讀取視頻文件,并將每幀圖片展示成視頻,本文主要介紹了Java實(shí)現(xiàn)視頻初步壓縮和解壓,需要的朋友可以參考下
    2023-10-10
  • Spring Boot 中使用cache緩存的方法

    Spring Boot 中使用cache緩存的方法

    Spring Cache是Spring針對(duì)Spring應(yīng)用,給出的一整套應(yīng)用緩存解決方案。下面小編給大家?guī)砹薙pring Boot 中使用cache緩存的方法,感興趣的朋友參考下吧
    2018-01-01
  • MyBatis Plus插件機(jī)制與執(zhí)行流程原理分析詳解

    MyBatis Plus插件機(jī)制與執(zhí)行流程原理分析詳解

    這篇文章主要介紹了MyBatis Plus插件機(jī)制與執(zhí)行流程原理分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java提高篇(二三)-----HashMap詳解

    java提高篇(二三)-----HashMap詳解

    HashMap基于哈希表的 Map 接口的實(shí)現(xiàn),本篇文章主要講訴了java中HashMap,有興趣的可以了解一下。
    2016-11-11
  • 詳解spring cloud config整合gitlab搭建分布式的配置中心

    詳解spring cloud config整合gitlab搭建分布式的配置中心

    這篇文章主要介紹了詳解spring cloud config整合gitlab搭建分布式的配置中心,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • IntelliJ IDEA設(shè)置代碼的快捷編輯模板Live Templates

    IntelliJ IDEA設(shè)置代碼的快捷編輯模板Live Templates

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA設(shè)置代碼的快捷編輯模板Live Templates,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • SpringBoot整合PostgreSQL的示例代碼

    SpringBoot整合PostgreSQL的示例代碼

    本文主要介紹了SpringBoot整合PostgreSQL的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java中如何動(dòng)態(tài)創(chuàng)建接口的實(shí)現(xiàn)方法

    Java中如何動(dòng)態(tài)創(chuàng)建接口的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java中如何動(dòng)態(tài)創(chuàng)建接口的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • springboot如何使用yml文件方式配置shardingsphere

    springboot如何使用yml文件方式配置shardingsphere

    這篇文章主要介紹了springboot如何使用yml文件方式配置shardingsphere問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論

汾阳市| 海原县| 贵德县| 连南| 绥德县| 乃东县| 雷山县| 招远市| 贵德县| 衡阳县| 遂昌县| 九龙县| 丰县| 吴堡县| 建昌县| 弥勒县| 辉县市| 克什克腾旗| 横峰县| 利川市| 昆明市| 平凉市| 游戏| 宜宾市| 疏勒县| 澜沧| 遂平县| 南川市| 台东县| 和田市| 安多县| 临夏县| 酉阳| 奎屯市| 德钦县| 天水市| 卫辉市| 徐闻县| 丽江市| 南木林县| 永宁县|