SpringMVC控制器 跳转到jsp页面 css img js等文件不起作用 不显示

3 篇文章 0 订阅
1 篇文章 0 订阅

通过浏览器的开发者工具查看网页源代码发现css,js,img等资源的路径出现了错误,路径前边多了一个控制器的路径,类似:

http://localhost:8080/项目根目录/控制器名称/js/jquery-1.9.1.min.js

解决办法:在jsp页面中将资源的路径设置为../js/jquery-1.9.1.min.js这样就会返回控制器的上一层路径了,最后得到的路径是:

http://localhost:8080/项目根目录/js/jquery-1.9.1.min.js

上边这种解决办法并不好,假设有这样一种场景:我在myeclipse启动项目,首先运行的是一个登陆页面,路径为

http://localhost:8080/项目根目录/login.jsp

login.jsp里边的css,js,img等资源的相对路径如./js/jquery-1.9.1.min.js。
之后我进行登录,登录成功之后进入到一个新页面,在这个新页面里边有一个退出登录按钮,这个按钮点击之后跳到控制器,这个控制器的路径为:

http://localhost:8080/项目根目录/控制器名称/控制器里边的方法名称

在这个控制器里边我进行一些退出登录的操作,进行完这些操作之后,我再次跳转到了login.jsp页面,这时候login.jsp里边的css,js,img等资源的路径再次变为了

http://localhost:8080/项目根目录/控制器名称/js/jquery-1.9.1.min.js

依然加载不出来资源,所以最终的解决办法是:引用css,js,img等资源文件以及在jsp页面进行跳转到其它页面或者控制器的时候使用绝对路径。

在jsp页面首部加上这段代码:

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

在css,js,img等资源文件以及访问控制器的相对路径改为绝对路径:

./js/jquery-1.9.1.min.js => <%=basePath %>js/jquery-1.9.1.min.js

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值