遇到一个问题需要配置Springboot的项目可以访问静态资源,百度了一下网上一大堆都是怎么说直接将静态文件放置到resources目录下就行,但是一波猛如虎的操作后发现并没有什么卵用。
?
直到我在配置文件里加入以下两行配置之后,终于可以直接访问到
?
class="java" name="code">spring.mvc.static-path-pattern=/** spring.resources.static-locations=classpath:/templates
目录结构如下图
?
?
访问链接为 http://127.0.0.1:8080/hello.html
?
没问题,很稳。终于可以了但是为什么我放到另外一个项目里就不行了呢
?
经过一番调试跟踪请求的处理发现要实现上述的这个功能最终是配置SimpleUrlHandlerMapping的urlMap属性来实现的且正常情况下这个是自动配置生效的,而我的另外一个项目里由于一些拦截器的配置导致这个urlMap里并没有生效,最终只能手动将这个配置注入进去。通过自己编写类继承WebMvcConfigurationSupport并重写addResourceHandlers方法就解决这个问题了。
@Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/templates"); super.addResourceHandlers(registry); }
?
?
?