springboot网页首页和图标定制

首页处理

由于首页还是与webMVC有关,我们还是从spring-boot-autoconfigure依赖的METAINF下的spring.factories下面的WebMvcAutoConfiguration类中看源码查找

在WebMvcAutoConfiguration类中发现有一个方法欢迎页处理映射

	@Bean
		public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,
				FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {
			WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(
					new TemplateAvailabilityProviders(applicationContext), applicationContext, getWelcomePage(),
// getWelcomePage 获得欢迎页面	
				this.mvcProperties.getStaticPathPattern());
			welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));
			welcomePageHandlerMapping.setCorsConfigurations(getCorsConfigurations());
			return welcomePageHandlerMapping;
		}

Ctrl + 鼠标左键点入方法getWelcomePage()获取欢迎页

它还是会从静态资源路径下去寻找"classpath:/META-INF/resources/",“classpath:/resources/”, “classpath:/static/”, “classpath:/public/”,它调用getIndexHtml()方法去匹配有没有index.html这个文件,如果静态资源中存在index.html而且请求路径不为空则获取到了欢迎页面

private Resource getWelcomePage() {
//从静态资源路径下去寻找"classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/"
			for (String location : this.resourceProperties.getStaticLocations()) {
				Resource indexHtml = getIndexHtml(location);
				if (indexHtml != null) {
					return indexHtml;
				}
			}
			ServletContext servletContext = getServletContext();
			if (servletContext != null) {
				return getIndexHtml(new ServletContextResource(servletContext, SERVLET_LOCATION));
			}
			return null;
		}
		//通过类加载器加载资源
		private Resource getIndexHtml(String location) {
			return getIndexHtml(this.resourceLoader.getResource(location));
		}

		private Resource getIndexHtml(Resource location) {
		//调用getIndexHtml()方法去匹配有没有index.html这个文件
			try {
				Resource resource = location.createRelative("index.html");
				if (resource.exists() && (resource.getURL() != null)) {
					return resource;
				}
			}
			catch (Exception ex) {
			}
			return null;
		}

欢迎页面:静态资源文件夹下的所有 index.html 页面会被 / 映射,会自动从静态资源文件夹下的找index.html,springboot已经帮我们拼接好了4个静态资源路径

当我们在任意四个静态资源的路径下建立index.html时,浏览器访问都能访问成功
在这里插入图片描述
但如果四个默认静态资源路径下都存在index.html文件时,还是会有优先级顺序,即
“classpath:META-INF/resources/”>“classpath:/resources/”>“classpath:/static/”>“classpath:/public/”

关于网址图标设置

与其他静态资源一样,Spring Boot在配置的静态内容位置中查找 favicon.ico。如果存在这样的文件,它将自动用作应用程序的favicon

  1. 关闭SpringBoot默认图标

#关闭默认图标
spring.mvc.favicon.enabled=false
  1. 自己放一个图标在静态资源目录下,四个静态资源路径的目录下均可

  2. 清除浏览器缓存!刷新网页,发现图标已经变成自己的了

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值