SpringBoot中Web开发场景-静态资源

静态资源

静态资源的默认存放位置

SpringBoot的静态资源,例如图片,视频,js,css 等资源可以放在SpringBoot指定的静态资源文件夹下。 /static,/public,/resources,/META-INF/resources 这四个文件夹是SpringBoot为我们指定的静态资源文件夹。
我们将静态资源放置其中,在启动项目时,可以通过请求获取到静态资源。
请添加图片描述

静态资源请求路径和Controller请求路径冲突问题


现在静态资源路径下有一个picture.jpg.
请添加图片描述
controller中也有请求路径和静态资源下访问picture.jpg的路径一样,那么会先访问谁呢?

 @RequestMapping("/picture.jpg")
    public String hello(){
    
    
        return "这是一个req请求";
    }

结果:
请添加图片描述
结论:当请求进来时,是去寻找controller里能不能进行处理,不能处理的话再去寻找静态资源进行处理,静态资源就会按照上述的四个路径去进行寻找,如果还找不到,就会出现404


配置静态资源的访问前缀

spring:
  mvc:
    static-path-pattern: /res/**

修改此配置会对SpringBoot对应的组件的值进行修改,我们可以查看对应的组件

	/**
	 * Path pattern used for static resources.
	 */
	private String staticPathPattern = "/**";

这是底层源码的默认配置。


修改默认的静态资源的存放位置

spring:
  web:
    resources:
      static-locations: [classpath:/zjh/,classpath:/public/]   

static-locations进行配置对应的存放的位置,可以用逗号隔开配置多个存放位置。


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

这是底层源码的默认配置。
关于这些存放静态资源的位置都是有优先级之分,优先级是配置时的顺序,由上至下,由左至右。


欢迎页的配置

方式1

在静态资源路径中存放index.html

方式2

配置对应的Controller处理请求 “/”

在目前的SpringBoot中,如果你配置了静态资源的前缀,那么则无法使得欢迎页生效。


网页图标的配置

favicon.ico放在静态资源路径下即可。如果你配置了静态资源的前缀,那么则无法使得网页图标生效。


猜你喜欢

转载自blog.csdn.net/weixin_45690465/article/details/120328707
今日推荐