从1.5.9升级至2.0.2之后,发现在yml文件里配置静态资源不能生效了,原因可以参看https://my.oschina.net/dengfuwei/blog/1795346,但是没能解决我的问题,下面给出我的解决方法:
首先,不要再在appcation.yml里配置
spring.resources.static-locations
这个值了,配置了也没用。
其次,我们需要实现
WebAppConfigurer
这个类,并重写
addResourceHandlers
这个方法。
假设我的静态资源文件所在根目录为,并且我配置了文件上传的基础路径为:
,那么,这个类的代码即为如下所示:
@Configuration public class WebAppConfigurer implements WebMvcConfigurer { @Value("${web.upload-path}") private String baseUploadPath; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/"); registry.addResourceHandler("/assets/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/assets/"); registry.addResourceHandler("/upload/**").addResourceLocations("file:"+ baseUploadPath); } }
这时再打开我们的页面:
静态资源没问题了,再访问下上传的文件:
搞定。