spring boot2.x访问静态资源

此处对比两个spring boot版本访问静态资源的区别:(jdk分别为1.7与1.8)

1.5.9.RELEASE 2.1.6.RELEASE
资源未被拦截 可以访问 可以访问
资源被拦截 可以访问 不可以访问

由此可见,如果spring boot版本为2.x,那存在配置了静态资源后不能被访问的情况。所以网上会有人说配置了资源映射无效或者说原来的static下不能访问了,实际原因可能是被拦截了。spring boot2.x会拦截原来1.x默认可访问的static文件夹下的静态资源,需要自己手动配置。

参考1:SpringBoot2.x静态资源访问方式

参考2:spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法

但是网上很多都是在class文件里配置,此处提供简单的办法,在配置文件中使用spring.resources.static-locations配置:

spring.resources.static-locations=classpath:/static/,file:E:/image/

此处替代:

@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
		registry.addResourceHandler("/img/**").addResourceLocations("file:///" + "E:/image/" + "img/");
	}

可用来访问项目目录下或本地磁盘目录下的资源文件。注意在2.x中使用,需要取消拦截。
比如:
在这里插入图片描述
或者
在这里插入图片描述

发布了21 篇原创文章 · 获赞 40 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Amo_lt/article/details/104051206