SpringBoot2.x过后static下的静态资源无法访问的问题
作者:苍穹之跃
SpringBoot2.x过后static下的静态资源无法访问
package com.example.thymeleaf.commons; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * 配置静态资源映射 * * @author sunziwen * @version 1.0 * @date 2018-11-16 14:57 **/ @Component public class WebMvcConfig implements WebMvcConfigurer { /** * 添加静态资源文件,外部可以直接访问地址 * * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } }
使用SpringBoot2.x时遇到静态资源访问不到的坑
问题
最近项目当中有一个需求就是:下载excel模板。当时我笑了,这个简单!毕竟以前做过这样的需求,于是乎二话不说直接开码,做法如下:
坎坷一
因为springboot很方便,直接在static文件下放入我的模板
于是乎我开心的请求了我的路径:http://localhost:8020/excel/demo.xlsx
什么鬼!!!?和我想象的不~~~~一样!我们不一样?
坎坷二
进过一番琢磨,虽然springboot默认设置了静态文件路径,但是这里我还是想做个配置明确一下我的静态文件文件路径:
配置好了以后,我悄悄的点了以上路径,结果?还是不行。
解决
后来我搜索了相关资料,发现这个和springBoot的版本有关,2.X以后的版本如果想访问静态资源就不能直接访问了,需要经过一翻配置。
这里分享一个链接:https://www.jb51.net/article/272426.htm
这里是说明了为什么不能访问静态资源。
好了,这里我是这么解决:
有必要说一下,我以前的项目使用的是springboot 1.4.4.RELEASE,现在使用的是springboot 2.0.6.RELEASE。
在我的项目当中我使用了WebMvcConfigurationSupport这个类,所以我做了如下改变:
(ps:配置里面的 srping.mvc.static-path-pattern: /static/** 是可以干掉的)
然后请求:http://localhost:8020/static/excel/demo.xlsx
这里注意哦,需要加上static哦。看完上面分享的链接我想大家就会明白为什么了。
版本果然很坑,希望大家以后遇到类似的问题的时候,能够考虑到这一点哦。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- springboot设置加载静态资源的路径(spring.resources.static-locations)
- SpringBoot中的static静态资源访问、参数配置、代码自定义访问规则详解
- springboot拦截器不拦截静态资源,只拦截controller的实现方法
- 关于SpringBoot拦截器拦截静态资源的问题
- springboot应用中静态资源访问与接口请求冲突问题解决
- SpringBoot如何访问html和js等静态资源配置
- springboot+thymeleaf打包成jar后找不到静态资源的坑及解决
- SpringBoot无法访问/static下静态资源的解决
- SpringBoot静态资源及原理解析