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


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将是相同的,无论你在哪里包含它