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中使用,需要取消拦截。
比如:
spring boot2.x访问静态资源_第1张图片
或者
spring boot2.x访问静态资源_第2张图片

你可能感兴趣的:(spring,boot)