在使用任何Web服务器或Tomcat时,绝对路径和相对路径有什么区别?
绝对路径以 / 开头,指的是从当前站点(或虚拟主机)的根位置开始的路径。
相对路径不以 / 开头,指的是从引用所在文档的实际位置开始的路径。
假设根目录为 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
<?php
#bar.php
require('../foo.php');
?>
/dir/bar.php /foo.php # 输出a /dir/foo.php # 输出b /dir/other/ # 空文件夹
$ pwd > / $ php dir/bar.php > / + ../foo.php == /foo.php > 输出a $ cd dir $ php bar.php > /dir + ../foo.php = /foo.php > 输出a $ cd other $ php ../bar.php > /dir/other + ../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' );