SpringBoot对静态资源的映射规则

1、SpringBoot对静态资源的映射规则;

WebMvcAuotConfiguration类:

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		if (!this.resourceProperties.isAddMappings()) {
			logger.debug("Default resource handling disabled");
			return;
		}

		//下面这段是对"/webjars/**"请求的映射规则
		Integer cachePeriod = this.resourceProperties.getCachePeriod();
		if (!registry.hasMappingForPattern("/webjars/**")) {
			customizeResourceHandlerRegistration(
					registry.addResourceHandler("/webjars/**")
							.addResourceLocations(
									"classpath:/META-INF/resources/webjars/")
					.setCachePeriod(cachePeriod));
		}

		//下面这段是静态资源文件夹映射
		String staticPathPattern = this.mvcProperties.getStaticPathPattern();          	
		if (!registry.hasMappingForPattern(staticPathPattern)) {
			customizeResourceHandlerRegistration(
					registry.addResourceHandler(staticPathPattern)
							.addResourceLocations(
									this.resourceProperties.getStaticLocations())
					.setCachePeriod(cachePeriod));
		}
	}

    //下面这段是配置欢迎页映射
	@Bean
	public WelcomePageHandlerMapping welcomePageHandlerMapping(
			ResourceProperties resourceProperties) {
		return new WelcomePageHandlerMapping(resourceProperties.getWelcomePage(),
				this.mvcProperties.getStaticPathPattern());
	}

   //下面这段是配置喜欢的图标
	@Configuration
	@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true)
	public static class FaviconConfiguration {
		private final ResourceProperties resourceProperties;

		public FaviconConfiguration(ResourceProperties resourceProperties) {
			this.resourceProperties = resourceProperties;
		}

		@Bean
		public SimpleUrlHandlerMapping faviconHandlerMapping() {
			SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
			mapping.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
          	//所有  **/favicon.ico 
			mapping.setUrlMap(Collections.singletonMap("**/favicon.ico",
					faviconRequestHandler()));
			return mapping;
		}

		@Bean
		public ResourceHttpRequestHandler faviconRequestHandler() {
			ResourceHttpRequestHandler requestHandler = new ResourceHttpRequestHandler();
			requestHandler
					.setLocations(this.resourceProperties.getFaviconLocations());
			return requestHandler;
		}
	}

#####(1)、对 /webjars/**请求的映射规则
对于所有访问/webjars/**下面的请求,都会去classpath:/META-INF/resources/webjars/ 找资源。

什么是webjars?
在项目中以jar包的方式引入静态资源,比如引入jquery,就可以再pom.xml文件中,加入如下依赖:

<!--引入jquery-webjar-->在访问的时候只需要写webjars下面资源的名称即可
	<dependency>
		<groupId>org.webjars</groupId>
		<artifactId>jquery</artifactId>
		<version>3.3.1</version>
	</dependency>

对于在项目中引入该jquery,可以采用如下方式:

localhost:8080/webjars/jquery/3.3.1/jquery.js

对于更多静态资源的webjars,可以访问如下网址:

http://www.webjars.org/

#####(2)、对于访问当前项目的所有请求"/**",如果没有任何控制器处理,都会去(静态资源的文件夹下)找映射,具体目录如下:
“classpath:/META-INF/resources/”,
“classpath:/resources/”,
“classpath:/static/”,
“classpath:/public/”
“/”:当前项目的根路径
例如:访问localhost:8080/abc请求,没有控制器处理该请求,就会去静态资源文件夹里面找abc

#####(3)、欢迎页
静态资源文件夹下的所有index.html页面;被"/**"映射;

例如:访问localhost:8080/ 找index页面

#####(4)、所有访问 **/favicon.ico 请求,都会在静态资源文件下找对应的图标文件;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

止步前行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值