动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网

springboot搭建的ssm ,整合了shiro 静态资源不放行

小叮当

2020.09.03

springboot搭建的ssm  整合了shiro  静态资源不放行

添加回答

回答(1)

代码小兵1146

出现这个错误,可能是以下原因1.Spring拦截了静态资源2.shiro的拦截器配置错了3.页面中路径写错了

这里采用了排除法来进行测试,首先,把shiro拦截器去掉,不让他起作用,然后测试,发现也不能访问,这样就可以排除是shiro的问题了,如果SpringMVC能访问静态资源,而Shiro不能,那就说明是shiro的问题,还有中测试方式就是之后访问报404的js或css看能不能访问!

1.如果SpringMVC烂拦截了的话可以做如下设置,使用默认的静态资源处理Servlet处理静态资源(涉及spring-mvc.xml, web.xml),在spring-mvc.xml中启用默认Servlet

 <mvc:default-servlet-handler/>

web.xml中增加对静态资源的处

<servlet-mapping>    

    <servlet-name>default</servlet-name>    

    <url-pattern>*.js</url-pattern>    

    <url-pattern>*.css</url-pattern>    

    <url-pattern>/assets/*"</url-pattern>    

    <url-pattern>/images/*</url-pattern>    

</servlet-mapping>

2.而如果是shiro的话,基本上就是拦截器写错了,多注意下路径什么的。

3.由于他页面用的是html而不是jsp,所以发现他直接写的是相对路径。。。

如果是jsp页面倒好解决,通过引入el表达式来解决

${pageContext.request.contextPath}/xxx

但在html页面中不能用,直接显示出来,并没有解析。。最后只能通过修改在tomcat中发布项目名来解决,也就是说去除项目名直接:localhost:8080/ 来访问项目就行了。eclipse中把path直接设置为空就行了。

时间:09-03 17:39 查看回复 (0) 回复 0 0 举报

回复