一、最近在学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
/* 是拦截所有的文件夹,不包含子文件夹
/** 是拦截所有的文件夹及里面的子文件夹