所谓相对路径,就是相对于自己的目标文件位置。例如“s1.htm” 文件里引用了“bg.jpg”图片,如果“bg.jpg”图片相对于“s1.htm”来说,是在同一个目录的,那么只要在“s1.htm”文件里使用以下代 码后,在浏览器里都能正确地显示图片。以后只要这两个文件的相对位置没有变(也就是说还是在同一个目录内),那么无论上传到Web服务器的哪个位置,都能正常显示
<body background="bg.jpg">
相对路径还可以相对服务器而言,但地址要以"/"开头
<body background="/xxxapp/bg.jpg">
- JSP文件中的path 和 basePath
<% String path = request.getContextPath(); // path = "/travel" String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; // basePath="http://localhost:8080/travel/" %>
- 采用绝对路径的弊端
<%
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
采用绝对路径时,页面中的超链接都要加上<%=basePath%>,会显得很麻烦。
<href src="<%=basePath%>script/jquery-1.9.1.js"/>
- 解决方案:利用html中的 <base>标签(推荐)
<head>
<!-- base需要放到head中 -->
<base href=" <%=basePath%>">
</head>
这里我们就可以直接使用相对路径(即: 相对于base标签)
<href src="script/jquery-1.9.1.js"/>
- 总结:以下三种表达方式结果相同
<head> <base href="<%=basePath%>"> <script src="<%=path%>/script/jquery-1.9.1.js"></script> <script src="<%=basePath%>script/jquery-1.9.1.js"></script> <script src="script/jquery-1.9.1.js"></script><!--这种最简洁--> </head>