1. 错误出现
在启动ssm搭建的web应用时出现jsp页面正常显示,图片和样式静态资源无法正常加载显示,一开始以为是springmvc静态资源处理配置的问题,在这个方向上浪费了好几个小时,最终无果,只能换个方向去查找解决方案。打开浏览器的开发者工具,发现所有的静态资源都报了
302
重定向返回码。
2. 寻求解决方案
百度了302的导致原因,一般是重定向之后的返回码才是302,因为我本身代码中没有对静态资源做重定向操作,所以我排查了有重定向的代码,发现我的登录过滤器配置的时候使用了
/*
拦截符,而我在登录过滤器中没有对静态资源处理,所以导致在访问静态资源时出现了访问不到的情况。
3. 解决方案
因为我的登录过滤器作用是验证session来实现session作用时间内免登录功能和在未登录时访问登陆后界面使其强制重定向到登录界面功能,所以不需要使用
/*
拦截符拦截所有请求,只需要将登录请求和其他页面访问的请求拦截就可以了,我的页面实现使用的*.jsp,请求是*.do所以拦截这两种类型的请求就可以了,用*.jsp和*.do将/*
替换掉问题解决。
最后重启服务器访问页面发现所有静态资源都可以正常访问了。