【问题标题】:Setting a root directory for accessing files from subfolders?设置根目录以访问子文件夹中的文件?
【发布时间】:2012-09-28 23:46:47
【问题描述】:

我正在尝试在我的本地主机上创建一个根目录(使用 xampp),以便我可以从子文件夹链接到在根目录上找到的图像和文件夹。所以我的目录如下所示。

另外,当网站上传到网络上时,这种方法是否有效?还是我必须将文档根目录更改为 http:// 链接到我的网站?

F = 文件夹 f = 文件

My Site
-------
[f] index.html
[f] logo.html
[F] css -> [f] main.css
[F] news -> [F]1 -> [f] 1.html
[F] images -> [f]logo.jpg

logo.html 将使用 PHP 包含在每个 html 页面上。 因此,如果我在 index.html 和 news/1/1.html 中都包含 logo.html,则指向图像的链接不起作用,因为新闻文件位于不同的文件夹中,并且指向图像文件夹的链接发生了变化。

我使用 PHP 尝试过,但似乎我做错了:

<?php $root = $_SERVER['DOCUMENT_ROOT'].'/My Site/'; echo $root .'/images/logo.jpg';
?>

【问题讨论】:

  • 当您说要“链接”到他们的内容时,您的意思是像 &lt;a href=""&gt; 类型的链接()吗?如果是这样,你应该使用相对路径,$_SERVER['DOCUMENT_ROOT'] 绝对不是你想要的。例如&lt;a href="images/logo.jpg"&gt;
  • Relative 不起作用,因为来自 1.html 的 logo.jpg 的链接必须是 href="../../images/logo.jpg" 我必须使用相同的链接而不进行切换dirs,这就是为什么我要创建一个根目录。
  • 为什么你必须这样做?很少有充分的理由不使用相对路径。不这样做可能会破坏可移植性。
  • 因为相关链接不起作用 :) 我编辑了我的主要帖子,你可能会明白我现在想说什么。
  • 那么使用绝对路径 (&lt;a href="/images/logo.jpg"&gt;)

标签: php html localhost document root


【解决方案1】:

$_SERVER['DOCUMENT_ROOT'] 为您提供真正的文件系统路径,而不是 Apache 返回的路径。

要链接到您需要使用 HTTP 路径的资源。如果你想从根目录链接,你只需要/images/logo.jpg

【讨论】:

  • 再次阅读我的主要帖子,我对其进行了编辑。 logo.html 包含图像/logo.jpg。如果我在 news/1/1.html 中包含 logo.html,则该图像的链接不起作用。如何解决这个问题?
  • 添加前面的/,然后无论文件出现在哪里,都会从文档根目录开始。
  • 那么还有其他问题。您是通过http://localhost/My Site 还是通过http://localhost/ 访问该网站?
  • 是的,行得通!但是当上传到网络时会发生什么?我想我需要使用 http:// 链接更改每个 /My Site/?有没有更简单的方法?
  • 这超出了编程范围,更多地涉及系统内容,但我要做的是在本地创建一个虚拟主机。在您的主机文件中,您可以添加一个类似 mysite.local 127.0.0.1 的条目,然后将 mysite.local 设置为 VirtualHost 并将其 DocumentRoot 指令指向 /full/path/to/My Site
【解决方案2】:

我发现在我的PHPBB3.1 驱动的网站上使用“页面”插件,在我的网站顶部的某些链接按钮中,相对链接不会保持“静态”。

PHPbb3 索引页面,app.php/page/FT 之类的链接会生成http://earth/forum/app.php/page/FT(正确)的地址,但从“添加页面”中,相同的链接会生成http://earth/forum/app.php/page/app.php/page/FT(不正确) )。

我开始寻找一种方法来设置我的页面相对于网络的根目录。我不能使用绝对链接,因为我的网站被复制到其他服务器上。我通过反复试验找到了答案。只需添加几个 ../../../ 像这样 ../../../forum/app.php/page/FT 它有效。

也许不是最好的计算机编程,但它可以胜任。 简而言之,每个 ../ 后退一个目录,放入太多目录,它会回到根目录,但不能再往前退!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多