使用include时图像损坏

时间:2016-05-15 12:22:03

标签: php html include

我有一个页眉和页脚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';
?>

enter image description here

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您的相对路径存在问题。

如果您的项目位于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中而不是在admin页面中工作的原因,因为images目录与index.php的目录相同

也在这里

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

您应该拥有完整路径/projectname/includes/header.php

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

希望这能解决你的问题。

相关问题