参看访问路径:https://www.cnblogs.com/zhangyinhua/p/7662334.html
1 目录
1.1 根目录和前端根路径
在web-inf内的文件用相对路径,使用绝对路径也访问不了,因为web-inf是私有的
访问webapp下建议使用${path}或/
参看博客:https://blog.csdn.net/tomcat_2014/article/details/47780241
其中/ 不是代表项目名称,是代表项目存放的路径。你的项目放在什么目录下,他就代表什么目录。
1.2 后台访问路径
basePath
2 路径
2.1 绝对路径
绝对路径:包括协议名称、主机地址、端口、web项目名称等的完整请求路径。request.getContextPath()拿到的是你的web项目的根路径,就是webRoot。
绝对路径-以Web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。
jsp页面:一般path中<a> ,form , css路径,js/jQuery路径
2.2 相对路径
相对路径:不需要协议名、主机地址、端口、web项目名称,只需要请求的路径
什么都不写就是:8080端口 + 所在目录
2.3 注意
相对路径的“/”和绝对路径的(contextPath)等同的
3 jsp页面
解决办法非常简单,统一使用绝对路径。
3.1 项目绝对路径(根目录)
1.在jsp中用request.getContextPath方式来拿到webapp的路径
<%String context = request.getContextPath(); %>
2.获得本页当前路径 ${pageContext.request.contextPath}
<link href="${pageContext.request.contextPath}/css/style.css" rel=stylesheet>
3.el
<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
${path}
3.2 绝对路径(访问完整路径)
指定basePath
<%
String contextPath = request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+contextPath;
%>
1.指定所有路径
<base href="<%=basePath%>" />
2.指定js路径
var contextPath = '<%=contextPath %>';
var bashPath = '<%=basePath %>';
4 Servlet(了解)
4.1 项目绝对路径(根目录)
不过没啥用,访问不了web-inf下的东西
一般重定向都是重定向到一个servlet,但是在过滤器(比如登录拦截)有些娃儿偷懒,会直接重定向到index.jsp,这个时候就需要使用绝对路径。
获得绝对路径:requsest.getContextPath()+ “/index.jsp”
5 Ajax的url路径
5.1 项目绝对路径(根目录) 和绝对路径(访问完整路径)
包括协议名称、主机地址、端口、web项目名称等的完整请求路径。
5.2 相对路径(根目录)和和项目绝对路径(根目录)
如果请求路径以根路径开头,则无论什么ajax在什么页面,该请求都是相对于服务器的根路径,最后的请求路径都是:http://localhost:8080/yjxt/
原因:以"/"开头,是表示该请求基于从服务器的根路径,即不是相对于html的路径。
5.3 示列:不以根路径开头的指向(常见)
假如请求在A页面,最终的请求路径是:http://localhost:8080/ yjxt /request/ajaxtest。
构成:8080端口 + 所在目录+ ajax的url
原因:a.html页面对应的路径是"/yjxt/",所以将url跟在这个路径下就是最终的请求路径。
6 Springmvc
6.1 项目绝对路径(根目录)和绝对路径(访问完整路径)
7 Js结合vue
basePath项目绝对路径(根目录)和绝对路径(访问完整路径);
contextPath:相对路径(根目录)和和项目绝对路径(根目录)
getContextPath: function() { var local = document.location; var contextPath = "/" + local.pathname.split('/')[1]; var basePath = local.protocol + "//" + local.host + "/"+ contextPath; this.contextPath = contextPath;//项目路径 this.basePath = basePath;//项目全路径 },