一个文件包含另一个目录中有链接的文件,如何设置链接的相对路径?

A file include a file in another directory which have links, How to set relative path for links?

我的工程目录如下

root 
  css
  img  
  src
    login 
       login.php
    dashboard
          basic
              header.php
              footer.php
              profile.php
              manage.php 
          department
              add_depart.php
    configuration
          config.php

这里的header.php包括profile.phpmanage.phpadd_depart.phpconfig.php.

header.php 中有指向保存在 basic 文件夹中的其他文件的链接。我的问题是当我在 add_depart.phpconfig.php 中包含 header.php 时,链接不起作用。我知道只包含将文件复制到 add_depart.php。链接无法在部门文件夹中访问。

如何设置链接的相对路径 header.php 可以从 basic、department 和 configuration 文件夹访问 header 提供的链接。

我也试过 getcwd() , dirname(__FILE__) .

请帮忙。

Header.php

$path_r = $_SERVER['DOCUMENT_ROOT'];
$path_l = $path_r . '/root/src/dashboard/basic/';
 <li class="dropdown">
    <a href="#" data-target="#" class="dropdown-toggle" data-toggle="dropdown"> Settings <b class="caret"></b></a>
    <ul class="dropdown-menu">
        <li><a href="<?php echo $path_l ?>/profile.php">Profile</a></li>
        <li><a href="<?php echo $path_l ?>/config.php">Config</a></li>
        <li class="divider"></li>
        <li><a href="logout.php">Logout</a></li>
    </ul>
</li>

您将文件系统路径与 URL 路径混淆了。

$_SERVER['DOCUMENT_ROOT'] 包含服务器(文件系统)上文档根目录的绝对路径,而不是 URL。 getcwd()dirname().

也是如此

只需在 URL 开头加上斜线:<a href="/path/to/profile.php" 等等,无论您在何处添加 URL,它们都是一样的。