以前寫東西基本上一直用絕對路徑,今天一同事發現一個訪問一個jsp的時候,其中引用的js文件怎麼都找不到,可是在eclipse中,在jsp頁面經過ctrl+鼠標點擊能夠直接進入js文件。因此搞的我倆一頭霧水。想了半天,才懷疑是base path做怪,一google,果真。下面轉一網友的,貼這裏記着: http://blog.sina.com.cn/s/blog_4fb846a90100ahye.html 今天在寫一個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="http://cyxinda.blog.163.com/blog/<%=basePath%>"> 使用了basepath,就是由於這句,全部的連接纔不能使用了。看來問題就出在base href 上了,顧名思義,base href不是就是基連接嘛。 上網搜索了一下,原來base href 不僅僅只有這麼點做用,尤爲在框架中。html 資料以下:框架 base標記是一個基連接標記,是一個單標記。用以改變文件中全部連結標記的參數內定值。它只能應用於標記<head>與</head>之間。 你網頁上的全部相對路徑在連接時都將在前面加上基連接指向的地址。eclipse 重要屬性: href 設定前綴的連接地址jsp target 設定文件顯示的窗口,同a標記中的targetide 簡單例子: <html> <head> <base href="http://cyxinda.blog.163.com/blog/http://www.baidu.com" target="_blank"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>base標記</title> <link rel="Shortcut Icon" href="http://cyxinda.blog.163.com/blog/ani.CUR"> </head> <body> <a href="http://cyxinda.blog.163.com/blog/77.htm" target="_self">77</a> <a href="http://cyxinda.blog.163.com/blog/88.htm">88</a> </body> </html>ui 當點了連接後,跳出的文件是http://www.baidu.com/77.htm或http://www.baidu.com/88.htm,它就是在這些相對路徑的文件前加上基連接指向的地址。若是目標文件中的連接沒有指定target屬性,就用base標記中的target屬性。 常在框架結構中用,如左右兩個框架,把左邊的框架中文件裏的鏈接都顯示在右邊的框架裏。只要用base標記,把其target屬性值寫爲右框架名稱,這就不用再爲左框架裏的文件中的每個鏈接都指定target屬性。google 當使用時,BASE 元素必須出如今文檔的 HEAD 內,在任何對外部源的引用以前。操作系統 此元素在 Microsoft? Internet Explorer 3.0 的 HTML 中可用,在 Internet Explorer 4.0 的腳本中可用。htm 此元素不會被渲染。blog 此元素不須要關閉標籤。 ServletContext.getRealPath("/")此方法已通過時,返回工程在操做系統(平臺)上面的部署的絕對路徑,其替代方案是:request.getSession().getServletContext().getRealPath("\\") |