【问题标题】:Attempting to link to root directory on home computer试图链接到家庭计算机上的根目录
【发布时间】:2015-05-07 12:49:50
【问题描述】:

我正在尝试在我的计算机上构建一个网站,但在从网站上的任何位置链接我的根目录时遇到问题。我知道我可以使用../ 根据需要多次上去 1 个目录,但是我需要一种方法来链接到我的根目录而不使用整个地址,这样我就可以在我的 PHP 页面中使用“绝对链接”我想在我的整个网站上使用以方便编辑。我被告知/ 将带我回到根目录,但它在我的计算机上不起作用。

这是我最深文件的地址(在我的根目录的第三个目录中) http://localhost/_Website%20Files/cats/articles/_Blank-Cats2.php

我想要的文件在中间的 _Website Files 中。但这是 INSIDE localhost 的一个文件夹,我相信它被用作根。 Localhost 中有一个名为test.php 的文件,我试图链接到该文件以测试LocalHost 是否被用作根,但它没有出现在我尝试过的_Blank-Cats2.php 中。 (这有意义吗?)在 _Blank-Cats2.php 的某个地方应该有一句话说“网站的 PHP 测试”,但它没有出现。

另外,我使用 MAMP 作为我的 php 本地主机。如果这对任何人都有帮助的话。

是我做错了什么,还是尝试链接到我计算机上的根目录时出现问题?

-----编辑------ 我已经将我的根目录更改为 _Website 文件,现在我的一些 / 链接可以正常工作,但其他的却不行。

例如,在我的_Blank-Cats2.php 页面中包含的Social-Media-Menu.php 文件中,使用/images/facebook.png 可以找到图像。但是,我不能使用/Social-Media-Menu.php 来定位和包含php 文件,我必须使用../../Social-Media-Menu.php 否则它将不起作用。另外,我可以从保存_Blank-Cats2.php 页面中使用/styles.css 链接到我的样式页面,但它不适用于我的php 页面。我还能够使/images/logo.gif 工作。

所以基本上我可以使用/ 链接到我的/images 目录,但不能使用根目录本身的任何内容。为此我需要使用../../../ 也许我只是为php包含创建一个新目录,看看是否能解决任何问题。

-----编辑------- 所以我创建了一个名为PHP-includes 的新目录,并将我想要包含的所有文件放在那里。 header.phpmenu.php等。但是当我去使用/PHP-includes/header.php时,它不起作用。

但是我注意到正在工作的元素是基于 html/css 的。我的/styles.css 工作正常,我的/images/logo.gif 工作正常。唯一不起作用的是我试图包含在 PHP 中的东西,所以我认为它与 PHP 的工作方式有关。会这样吗?

-----编辑------- 啊哈! / 不适用于 PHP,我在这里发现了 https://css-tricks.com/php-include-from-root/ 所以我想我需要弄乱我的 PHP 代码才能让它运行并做我想要它做的事情。如果您对如何做到这一点有任何提示或技巧(我发布的那个页面上列出的示例对我没有意义),请随时在下面发布=)

【问题讨论】:

  • 在你的硬盘中页面在哪里? c://mamp/等?
  • 我从地址栏中复制并粘贴了这个地址,所以我不知道为什么不包括在内,因为我知道这是地址的一部分。 . .但是我只是找到了如何更改 MAMP 中的根目录,所以现在 _Website Files 是目录,但这很奇怪。 /image.jpg 将在 3 级子目录中使用的 php 文件中工作,但 /header.php 当我尝试将其包含在同一目录中时将无法工作。所以我不确定那里发生了什么。 . .

标签: php html directory root


【解决方案1】:

相对路径不适用于您的 PHP 文件。我在这里给你的解决方案...

How do I link to a file in a different directory without using the whole address?

... 仅适用于客户端资源(HTML/CSS/图像)。如果你想在你的 PHP 代码中获取根目录,你必须使用$_SERVER["DOCUMENT_ROOT"]

然后我们将对所有包含使用类似的内容:

  <?php include($_SERVER["DOCUMENT_ROOT"] . "/your/path.php"); ?>

您必须了解一些资源是在服务器端(PHP 服务器)加载的,而哪些是在客户端(浏览器)加载的。这就是为什么你不能为双方都提供通用解决方案。

【讨论】:

  • 好的,所以我慢慢开始明白了。如果我理解这一点,你建议我所有的“php include”语句都应该按照你上面提到的那样构造,除了“/your/path.php”将被替换为相对于我的实际文档根目录的实际链接, 正确的?但是,我其他页面上的某个人说这 --- 最好在 PHP 脚本中创建一个包含根目录路径的常量,即 define('ROOT_PATH', 'your path');在一个单独的文件中,例如:config.php 然后你将它包含在每个页面中,这样你就可以在任何地方访问常量 --- 继续 -
  • 我将如何声明我的 ROOT-PATH,弄清楚我的根目录是什么以便我可以实际设置它,然后我将在哪里包含文件。 . .我怀疑在[HEAD]。另外,我要感谢您提供的帮助。 @nanndoj
猜你喜欢
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
相关资源
最近更新 更多