所謂相對路徑,就是相對於自己的目標文件位置。例如“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>