2008-10-08 371 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