springboot项目无法访问静态资源的问题解决

项目开发中需要做下载功能,但是后台静态资源访问不到。搞了一天才解决的。记录下来,希望大家不要入坑。

项目环境:idea + jdk11 + gradle

按照约定大于配置的原则,springboot resource文件下的静态资源,在不需任何配置的情况下都可以访问到的。 测试发现报404.觉着可能是环境差异。遂配置spring.mvc.static-path-pattern 属性,配置后进行测试,还是报404. 改成用java Bean的方式配置,还是404.

彻底蒙圈。因为是第一次使用gradle管理依赖,觉着是gradle配置的问题导致的。就创建了一个maven项目进行测试。发现静态资源可以访问,更加确定是gradle配置的问题。就在这搞了一天,毫无进展😂。 放弃、睡觉。

第二天在看项目代码。 突然发现 项目中已经实现了WebMvcConfigurationSupport接口但是没有重写addResourceHandlers方法。

突然想起了起了看过的一篇文章 WebMvcAutoConfiguration 这个注解中有一个特殊的条件。当 WebMvcConfigurationSupport 没有加载时才生效。按照上图的配置肯定就访问不到了。

遂重写 addResourceHandlers 方法 

 测试  访问成功。

折腾了一天写点总结: 当定位问题的方向出错,折腾再长的时间也是白搭。 对springboot的自动配置了解不够,定位靠猜。正确的方法应该是从源码入手。 后面复盘一下这个问题尝试从源码入手定位解决。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值