springboot 整合shiro无法访问静态资源的问题

本文解决SpringBoot项目中使用Shiro后无法访问静态资源的问题,介绍如何正确配置Shiro过滤器以放行静态资源,并解释/**与/*的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、最近在学springboot 整合shiro后发现无法访问静态资源,

根据自己的经验是shiro拦截了,需要放行一下,springboot在shiroFilter中添加,(我的静态资源 css js image都是放到这个目录的)

filterChainDefinitionMap.put("/static/**", "anon");
但是发现并没有什么卵用,这次虽然没有没有被shiro拦截,却提示没有资源.明明地址没有错,这是怎么回事呢?

后来发现springboot默认把所有的静态资源都映射到static目录了

也就是说本来的http://localhost:8888/static/css/main.css 需要改成

http://localhost:8888/css/main.css才可以访问,

于是我喜滋滋的往浏览器一输入,发现又被shiro拦截了....  shiro还需要放行  shiroConfig中还需要添加

 filterChainDefinitionMap.put("/image/**", "anon");//img
        filterChainDefinitionMap.put("/css/**", "anon");//css
        filterChainDefinitionMap.put("/js/**", "anon");//js


这样就可以访问了,我们在页面中引用也是同样的原理

如果还是不懂的话,可以看一下源码

https://github.com/Yanyf765/shiro


参考链接:https://blog.youkuaiyun.com/u012954380/article/details/80998889 

 

二、/**和/*区别

?    匹配任何单字符         

*    匹配0或者任意数量的字符         

**    匹配0或者更多的目录 

https://blog.youkuaiyun.com/qq_26878363/article/details/81635139

https://www.cnblogs.com/chenmz1995/p/10367199.html

/* 是拦截所有的文件夹,不包含子文件夹
/** 是拦截所有的文件夹及里面的子文件夹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值