封尘网

让学习成为一种习惯!

Tomcat静态资源导致Session失效

今天开发更新了项目代码,并更新到服务器上,项目发布后开发就没跟进了,由于测试环境通过了。但是在正式服务器上居然被测试发现了一个重大问题。就是用户登陆后,Session只在首页有效果,一切换到内页时就自动退出;

本以为是Session丢失,但是通过Chrome浏览器的开发者工具发现Session值没变,只是无法传递到新的页面上,非常奇怪,开启Debug模式;通过代码跟踪后发现,有一个静态资源在每个页面请求上都出现了404;

经查找项目路径,发现确实文件不存在,而且路径在CSS文件上多了一层目录;

解决思路:

1、找出文件名所有的文件;

进入静态资源目录:

find .|xargs grep -ri "banner-wallet.png" -l

2、修改文件的正确路径;

利用sed批量修改:【因为文件有多个】

sed -i 's#../../images/#/resources/images/#g' `find .|xargs grep -ri "banner-wallet.png" -l`

3、上传文件到静态资源目录;

4、刷新页面,重新登陆,发现恢复正常。【由于是CSS文件不用重新发布项目的】

这次觉得很怪,但是也是可以说得过去,就是由于这个静态资源不存在,导致Session请求资源时直接不执行;

提醒:本文最后更新于 2526 天前,文中所描述的信息可能已发生改变,请谨慎使用。