绝对路径和相对路径
Posted
技术标签:
【中文标题】绝对路径和相对路径【英文标题】:Absolute path & Relative Path 【发布时间】:2010-09-15 23:00:13 【问题描述】:在使用任何 Web 服务器或 Tomcat 时,有什么区别?
【问题讨论】:
【参考方案1】:绝对路径以 / 开头,指向当前站点(或虚拟主机)根目录的位置。
相对路径不以 / 开头,并且从所引用的文档的实际位置引用一个位置。
例子,假设root是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
【讨论】:
【参考方案2】:需要注意的是,相对路径也是主观的。
即:
<?php
#bar.php
require('../foo.php');
?>
/dir/bar.php
/foo.php # 打印一个
/dir/foo.php # 打印 b
/dir/other/ # 空目录
$密码
> /
$ php 目录/bar.php
> / + ../foo.php == /foo.php
> 打印一个
$ cd 目录
$ php bar.php
> /dir + ../foo.php = /foo.php
> 打印一个
$ cd 其他
$ php ../bar.php
> /dir/其他 + ../foo.php = /dir/foo.php
> 打印 b
这可能会造成一些相当混乱的情况,特别是如果您有许多具有相关引用的文件和多个可能的位置,这些位置可以充当控制相对路径相对于什么的“入口点”。
在这种情况下,应该根据一个固定的已知值手动计算绝对路径,即:
<?php
require( realpath(dirname(__FILE__) . '/../foo.php') )
或
<?php
require( SOMECONSTANT . '/relative/path.php' );
或
<?php
require( $_SERVER['DOCUMENT_ROOT'] . '/relative/path.php' );
【讨论】:
【参考方案3】:通过反复试验,我确定 Tomcat 中路径的起点是 webapps 文件夹。
换句话说,如果您的 Java 代码试图读取 ../somefile.txt,那么该文件的绝对路径将是 %TOMCAT_HOME%/webapps/../somefile.txt 即 %TOMCAT_HOME%/webapps/somefile。 txt
【讨论】:
以上是关于绝对路径和相对路径的主要内容,如果未能解决你的问题,请参考以下文章