在不同的目录中使用 header.php 个文件

use header.php file in different directories

我有一个具有这种结构的网页:

/var/www/html/webpage/
                    |-stands/
                    .      |-header.php
                    .
                    |-images/
                    .      |-picture.png
                    .
                    |-login/
                    .      |-login.php
                    .
                    |-index.php

我想在两个文件中使用 stands/header.php,login/login.php 和 index.php。我将它包含在两个文件中

<?php
include("stands/header.php")
?>

<?php
include("../stands/header.php")
?>

在 header.php 使用 images/ 文件夹中的图形之前,这一切正常,例如 images/picture.png.

我在header.php中使用的图片如下:

<img src="../images/picture.png" alt="nice pic"/>

我在 login.php 文件中得到 picture.png 但在 index.php 中我得到 nice pic.

看起来,如果我包含 header.php 文件,它查找图片的目录不是从 header.php 的目录开始,而是从包含它的目录开始(例如从index.php,它在 index.php 的第二个父目录中查找 html/(因为 ../ 并且没有 images/ 文件夹,所以我得到 nice pic 而不是 .png 文件。

我现在的问题是:

有没有一种方法可以全局包含图形,意味着它总是(总是)寻找同一个目录?

感谢您的帮助,对我的结构性问题感到抱歉(我不是英语,不知道如何问这个问题更简单)

尝试为您的图片提供绝对路径。

<img src="<?php echo 'http://'.$_SERVER['HTTP_HOST']; ?>/images/picture.png" alt="nice pic"/>

它将获取当前 URL 并将其与图像路径合并。

您的 img 标签中的图像是在客户端加载的,因此与 php 无关。您的图片标签 src 必须与访问者当前位置相关。

您可以使用像 A J 的答案那样的绝对路径,这将是一个解决方案,但在您的情况下,在我看来您的 login.php 文件应该与您的文件位于同一目录中index.php。除非你真的需要那样,否则我认为你应该尝试将 php 将直接加载的脚本放在站点的根目录下,并将脚本和图像包含在文件夹中。

像上面那样使用,因为在您的情况下文件路径应该是正确的,这不是访问图像文件的正确方法。