【发布时间】:2018-05-09 22:31:19
【问题描述】:
如果我有一个位于 mysite.com/pages/page1.php 的文件和一个位于主目录 (mysite.com/header.php) 中的文件 header.php,那么包含 header.php 的方法是什么?
我试过include($_SERVER['DOCUMENT_ROOT'] . "/header.php"); 或"../header.php");
这不起作用,因为 header.php 中包含或引用的任何内容都不起作用。例如include("meta.php"); 不起作用。 include($_SERVER['DOCUMENT_ROOT'] . "/meta.php");也没有
是否有另一种调用 header.php 的方法不会将其“移动”到调用它的文件的目录中?
【问题讨论】:
-
来自
mysite.com/pages/page1.php家将是../../header.php -
启用错误报告,包含不会静默失败。使用 realpath() 和 file_exists() 进行调试。
-
它只是说“加载资源失败:服务器响应状态为 404(未找到)”。我可以访问 header.php,但它没有引用任何内容,因为它认为 header.php 现在位于 pages 文件夹中。至少我认为这就是原因。
-
DOCUMENT_ROOT会给你绝对路径。检查它在您的服务器中指向的位置。echo $_SERVER['DOCUMENT_ROOT']也可以在DOCUMENT_ROOT后面附加文件名并检查它是否指向真实的位置和文件。 -
嗯我在 header.php 中引用了一个 css,看起来它正试图在“https://mysite.com/home/myname/mysite.com/css/styles.css ”。这似乎不对。但无论哪种方式,我都不应该修改 header.php 中的任何内容,因为我知道它调用的所有内容在从主目录调用时都有效。 header.php 在主目录中。
标签: php reference include document-root file-structure