理解<base href="<%=basePath%>">

 如何理解<base href="<%=basePath%>">

 
 

"base href "

       今天在寫一個JSP網頁的時候,href不能用了,所有href鼠標放上去前面現實的都是“http:///”,竟然有三個“/”,而且前面也沒有顯示“localhost:8080”找了大半天找不出來,最後才發現不小心將Eclipse自動生成的下面兩行代碼誤刪了,
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
我一直沒有使用path 和 basepath ,爲什麼會這樣呢,最後終於發現,原來在 <head></head>中,有一句   <base href="<%=basePath%>"> 使用了basepath,就是因爲這句,所有的鏈接纔不能使用了。看來問題就出在base href 上了,顧名思義,base href不是就是基鏈接嘛。
上網搜索了一下,原來base href 不單單隻有這麼點作用,尤其在框架中。


資料如下:

       base標記是一個基鏈接標記,是一個單標記。用以改變文件中所有連結標記的參數內定值。它只能應用於標記<head>與</head>之間。
你網頁上的所有相對路徑在鏈接時都將在前面加上基鏈接指向的地址。

重要屬性:
href
設定前綴的鏈接地址

target
設定文件顯示的窗口,同a標記中的target

簡單例子:


<html> 
<head> 
<base href="http://www.baidu.com" target="_blank"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>base標記</title> 
<link rel="Shortcut Icon" href="ani.CUR"> 
</head> 
<body> 
<a href="77.htm" target="_self">77</a> 
<a href="88.htm">88</a> 
</body> 
</html>
       當點了鏈接後,跳出的文件是http://www.baidu.com/77.htmhttp://www.baidu.com/88.htm,它就是在這些相對路徑的文件前加上基鏈接指向的地址。如果目標文件中的鏈接沒有指定target屬性,就用base標記中的target屬性。
常在框架結構中用,如左右兩個框架,把左邊的框架中文件裏的連接都顯示在右邊的框架裏。只要用base標記,把其target屬性值寫爲右框架名稱,這就不用再爲左框架裏的文件中的每一個連接都指定target屬性。

       當使用時,BASE 元素必須出現在文檔的 HEAD 內,在任何對外部源的引用之前。

       此元素在 Microsoft? Internet Explorer 3.0 的 HTML 中可用,在 Internet Explorer 4.0 的腳本中可用。

       此元素不會被渲染。

       此元素不需要關閉標籤。

 

 

       這個標籤的用處是解決編程時候的相對路徑問題,比如有的cms,因爲每頁路徑不一樣,他就給你生成<a href="/sdsd/dsd.html">sddsds</a>之類的,如果我在本地調試,肯定會在本地開一個目錄的,這樣就亂了,你可以把它生成相對路徑,如<a href="sdsd/dsd.html">sddsds</a>,只要在head部分加上<base href=http://localhost/abc/>即可。

所以說,這個標籤主要爲了解決web編程的時候一些相對路徑的問題。

當然,這個base還有一個用法,如在head部分加上這麼一行: <base href="_blank"> ,就是默認所有鏈接在新窗口打開。


       還可以這麼理解
       這是設置基礎路徑的,basepath爲變量 
       簡單的靜態網頁的話你設置比如:<base href="http://www.baidu.com">,那你下面的href屬性就會以你上面設的爲基準,如:<a href="http://www.baidu.com/xxx.htm"></a>你現在就只需要寫<a href="xxx.htm"></a>

http://hi.baidu.com/jensh8023/blog/item/e6650d02a6ae23f608fa9397.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章