最近在学springboot 整合shiro后发现无法访问静态资源,
每次访问静态资源文件都被跳到登陆页面.
根据自己的经验是shiro拦截了,需要放行一下,springboot不是用xml配置的,在shiroFilter中添加,(我的静态资源 css js image都是放到这个目录的)
filterChainDefinitionMap.put("/static/**", "anon");
但是发现并没有什么卵用,这次虽然没有没有被shiro拦截,却提示没有资源.明明地址没有错,这是怎么回事呢?
后来发现springboot默认把所有的静态资源都映射到static目录了
也就是说本来的http://localhost:8080/static/css/main.css 需要改成
http://localhost:8080/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