【发布时间】:2014-05-19 16:17:05
【问题描述】:
我的网站上有一个名为 $basePath 的变量,它设置为:
$basePath = '/Systems/dgw/';
我在我所有的 css、js 和图像标签上都使用它(为了更好的可见性而缩短):
<link href="<?php echo $basePath; ?>include/assets/css/bootstrap.min.css">
我对这些包含没有任何问题,它们在任何文件和我所在的任何文件夹中都可以正常工作。
我有一个包含以下内容的页面:
<img src="<?php echo $basePath; ?>images/new_logo.png" alt="logo"/>
而且图像显示得很好。它后面的行是:
<?php include($basePath.'include/assets/common/topMessages.php');?>
但包含不会发生。当我这样尝试时:
<?php include('../../include/assets/common/topMessages.php');?>
有效。
有人知道哪里出了问题吗?
【问题讨论】:
-
echo没有包含任何东西…… -
抱歉,复制了错误的行。固定。
-
基本上,您的 webroot (即
www.example.com/是您网站的根)和(unix)文件系统的根之间存在区别。 webroot 映射到文件系统中的路径;通常www.example.com/被映射到类似/var/www/example.com/http_docs/的东西。您的网络服务器会自动将任何对/a/b/c的请求转换为/var/www/example.com/http_docs/a/b/c。但是,当您通过 PHP 包含文件时,不会要求网络服务器转换路径,因此它会在您的文件系统中查找/a/b/c,这显然不存在。
标签: php include relative-path include-path absolute-path