2008-10-08 339 views

回答

28

絕對路徑以/開始,指的是當前站點(或虛擬主機)根目錄中的某個位置。

相對路徑不以/開頭,而是指引用文檔的實際位置。

例子,假設根是http://foo.com/site/

絕對路徑,無論身在何處,我們都在網站上

/foo.html 

將把http://foo.com/site/foo.html

相對路徑,假設包含鏈接位於http://foo.com/site/part1/bar.html

../part2/quux.html 

將把http://foo.com/site/part2/quux.html

part2/blue.html 

將把http://foo.com/site/part1/part2/blue.html

+0

好又容易理解 - 謝謝:) – radbyx 2012-02-27 08:43:03

3

需要注意的是相對路徑也是主觀的這個環節。

即:

<?php 
    #bar.php 
    require('../foo.php'); 
?> 
 
/dir/bar.php 
/foo.php   # prints a 
/dir/foo.php # prints b 
/dir/other/ # empty dir 
 
$ pwd 
>/
$ php dir/bar.php 
>/+ ../foo.php == /foo.php 
> prints a 
$ cd dir 
$ php bar.php 
> /dir + ../foo.php = /foo.php 
> prints a 
$ cd other 
$ php ../bar.php 
> /dir/other + ../foo.php = /dir/foo.php 
> prints b 

這可能會產生一些比較混亂的狀況,特別是如果你有相關聯繫的引用和多種可能的地方,可以作爲一個「切入點」行爲許多文件控制相對路徑相對於什麼。

在這種情況下,應該計算手動基於一個固定的已知的絕對路徑,即:

<?php 
    require(realpath(dirname(__FILE__) . '/../foo.php')) 

<?php 
    require(SOMECONSTANT . '/relative/path.php' ); 

<?php 
    require($_SERVER['DOCUMENT_ROOT'] . '/relative/path.php'); 
1

通過試驗和錯誤我確定Tomcat中路徑的起點是webapps文件夾。

換句話說,如果你的Java代碼試圖讀取../somefile.txt,那麼該文件的絕對路徑是%TOMCAT_HOME%/ webapps /../ somefile.txt即%TOMCAT_HOME%/ webapps/somefile 。txt