【问题标题】:Broken image when using include使用包含时损坏的图像
【发布时间】:2016-05-15 12:22:03
【问题描述】:

我有一个页眉和页脚 php 文件,它将用于我创建的每个 php 文件。我将它们都存储在文件夹“include(在我的父目录中)”中。它们都可以作为单独的文件正常工作。当我将它们包含在父目录中的 index.php 中时,它们实际上正在工作。我的问题是,当我在文件夹内的其他文件上使用它们时(例如 admin 文件夹中的 admin.php),图像已损坏,但是当我更改图像相对于 admin.php 的路径时,它可以正常工作, index.php 现在有一个损坏的图像。我能做些什么来解决这个问题?希望你能理解我的问题。谢谢你。 这些是我的代码: 标题:

<div id = "header"> 
    <img id="headerImage" src="images/logo1.jpg" />
</div>

索引:

<?php
session_start(); 
include 'include/header.php';?>
admin: <?php
include '../include/header.php';
?>

【问题讨论】:

  • 给我们任何形式的目录和文件树的可视化...任何可以帮助我们了解您的系统中发生了什么以及您的 PHP 代码的相关部分的东西。
  • src="images/logo1.jpg"改为src="/images/logo1.jpg",因为它是相对于web根目录,而不是相对于执行脚本的文件夹
  • 先生,它不适用于我的管理和索引文件。相对于我的头文件,目录 /images/logo1.jpg/ 不存在
  • 你可以试试 src='../images/logo1.jpg'
  • @AzeezKallayi,先生,我试过了,但还是一样。它刚刚适用于 admin.php 文件,但在我的索引中,图像已损坏。

标签: php html include


【解决方案1】:

您的相对路径有问题。

如果您的项目位于 webroot 下的子文件夹中 例如:host.com/projectname/ 你这样做:

<img id="headerImage" src="/images/logo1.jpg" />

这将指向 host.com/,因此您应该在子文件夹之前包含一个正斜杠:/projectname/images/logo1.jpg。路径前的正斜杠将自动指向 webroot。如果您的项目位于 webroot 下,则斜杠就足够了。

如果你喜欢你所做的:

<img id="headerImage" src="images/logo1.jpg" />

开头没有正斜杠的路径将指向它所在的当前目录。 这就是它在 index.php 而不是管理页面中工作的原因,因为 images 目录与 index.php 位于同一目录中

这里也有

<?php
    include '../include/header.php';

你应该有完整的路径 /projectname/includes/header.php

这是因为如果您必须在文件夹结构中包含更深层次的内容,则必须执行 ../../../include/header.php。会很难维护。

希望这能解决您的问题。

【讨论】:

    【解决方案2】:

    问题在于相对路径,而在不同的文件夹中。 您可以做的是将路径设置为绝对图像 http://www.domain.com/images/logo1.jpg 像这样图像应该显示在任一页面中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 2019-10-19
      • 1970-01-01
      相关资源
      最近更新 更多