1.首页
- 和静态资源一样,首页的配置也在自动配置类WebMvcAutoConfiguration中,这个类中有一个方法叫getWelcomePage()
private Optional<Resource> getWelcomePage() { String[] locations = getResourceLocations(this.resourceProperties.getStaticLocations()); return Arrays.stream(locations).map(this::getIndexHtml).filter(this::isReadable).findFirst(); } =================================== public String[] getStaticLocations() { return this.staticLocations; } =================================== private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS; =================================== private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" };
- 可见,springBoot项目启动的时候也是去静态资源文件夹中寻找首页
- 仔细看看上面方法的返回值,它去调用了这个类中的另一个方法getIndexHtml()
return Arrays.stream(locations).map(this::getIndexHtml) ==================================== private Resource getIndexHtml(String location) { return this.resourceLoader.getResource(location + "index.html"); }
- 即首页的获取,首先使用getWelcomePage()获取首页可能存在的文件夹,然后再使用getIndexHtml(),将这些文件夹路径和"index.html"拼接,得到完整的请求首页的路径,所以我们的首页需要放在springBoot项目的静态资源文件夹下面,并且首页的名称必须为"index.html"
- 按照上一篇博客,4个文件夹读取同名文件有优先级:“classpath:/META-INF/resources/” > “classpath:/resources/” > “classpath:/static/” > “classpath:/public/”
- 我们随便在哪一个文件夹下定义一个index.html,然后开启项目访问http://localhost:8080/,看看是否能够跳转首页
2.图标
- 在新版本的springBoot中,已经不支持设置图标了,在老版本中我们可以在静态资源文件夹下引入一个图标资源favicon.ico,并在配置文件中关闭默认图标的使用(spring.mvc.favicon.enabled=false),项目启动的时候读取的图标就是我们自定义的这个图标
- 所以如果我们想要配置页面图标,需要使用html中的图标配置