[size=medium]一.問題
jsp中究竟採用絕對路徑還是採用相對路徑隨著所採用技術的越來越複雜,這個問題也變得越來越難以解決。
1)採用相對路徑遇到的問題
相對路徑固然比較靈活,但如果想複製頁面內的**卻變得比較困難,因為不同的頁面具有不同的相對路徑,複製後必須修改每乙個連線的路徑。
如果頁面被多於乙個的頁面所包含,那麼被包含頁面中的相對路徑將是不正確的。
如果採用struts的action返回頁面,那麼由於頁面路徑與action路徑不同,使得瀏覽器無法正確解釋頁面中的路徑,如頁面為/pages/cust/cust.jsp,所有目錄為/images/title.gif,這時在/pages/cust/cust.jsp中的所用的路徑為」../../images/title.gif」,但是如果某乙個action的forward指向這個jsp檔案,而這個action的路徑為/cust/manage.do,那麼頁面內容中」../../images/title.gif」就不再指向正確的路徑了。
解決以上問題似乎只有使用絕對路徑了。
2)採用絕對路徑遇到的問題
二.解決方案
1) 採用絕對路徑,但為了解決不同部署方式的差別,在所有非struts標籤的路徑前加$,如原路徑為:
」/images/title.gif」,改為
「$/images/title.gif」。
**」 $」的作用是取出部署的應用程式名,這樣不管如何部署,所用路徑都是正確的。
缺點:操作不便,其他工具無法正確解釋$
2) 採用相對路徑,在每個jsp檔案中加入base標籤,如:
這樣所有的路徑都可以使用相對路徑。
缺點:對於被包含的檔案依然無效。
真正使用時需要靈活應用1)和2),寫出更加健壯的**。[/size]
相對路徑與絕對路徑
相對路徑 以引用檔案之網頁所在位置為參考基礎,而建立出的目錄路徑。因此,當儲存於不同目錄的網頁引用同乙個檔案時,所使用的路徑將不相同,故稱之為相對。絕對路徑 以web站點根目錄為參考基礎的目錄路徑。之所以稱為絕對,意指當所有網頁引用同乙個檔案時,所使用的路徑都是一樣的。其實絕對路徑與相對路徑的不同處...
相對路徑與絕對路徑
相對路徑與絕對路徑 絕對路徑 舉例.c盤中windows目錄中system32中的ias資料夾,即c windows system32 ias 相對路徑 舉例。c盤中windows目錄中system32中的ias資料夾和c盤中windows目錄中system32中的0409資料夾,ias相對於040...
絕對路徑與相對路徑
無論是在windows還是linux作業系統下,絕對路徑和相對路徑都是很重要的概念,也是許多初學者迷惑的地方,下面我們就這兩個概念進行介紹。絕對路徑 由根目錄 開始寫起的檔名或者目錄名稱,例如 home student 相對路徑 相對於目前路徑的檔名寫法。例如.home student或者.home...