springMVC请求返回视图中引入的静态资源路径不正确

springMVC搭建的web项目,通过controller返回的jsp视图,

jsp页面中引入的js、css静态文件,报错404

发现路径都带着controller的requestMapping的路径。

164706_7GzC_2331292.png

controller如下:

164031_LfD8_2331292.png

请求地址如下:

http://localhost:8088/test/test?id=1

静态文件位置及路径:

164554_2DC1_2331292.png

 

原因:jsp页面中路径不以“/”开头,会当做相对路径处理。

通过controller访问返回的jsp视图,是由你的服务器(tomcat)解析。

所以其(jsp)相对路径就会是服务器的路径。而不是其所在静态资源位置的相对路径。

 

解决办法:

        1:改为绝对路径。

<script src="/js/jquery.min.js"></script>

        2:页面顶部获取request.getContextPath() 获取站点根路径

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

        然后再引用静态资源前面加上<$=path %>如下

    <link rel="stylesheet" type="text/css" href="<%=path %>/css/magnific-popup.css">

 

 

转载于:https://my.oschina.net/u/2331292/blog/1809696

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值