1

我有一个 html 文件 images.html 显示子目录“img”中的图像。它使用相对路径来访问子目录中的图像。

在我的 index.php 中,一切都出错了:

require_once("dir1/dir2/images.html");

现在相对路径是相对于我的 index.php,而不是相对于 dir1/dir2/images.html 并且我看不到我的图像。有没有办法可以使路径相对于包含的文件 images.html?

目录结构

index.php
dir1
   dir2
       images.html
       img
           flower.png

索引.php

<?php require_once("dir1/dir2/images.html"); ?>

图像.html

<img src="img/flower.png" />
4

2 回答 2

2

这是一个 HTML 问题,而不是 PHP。

当您使用浏览器访问时/dir1/dir2/images.html,浏览器将/dir1/dir2用作相对路径的基础(因此相对路径img/flower.png被解析为/dir1/dir2/img/flower.png)。当您访问/index.php时,它/用作基础(所以img/flower.png给了/img/flower.png,找不到)。

您可以:

  • 为您的图像使用绝对路径(例如/dir1/dir2/img/...
  • 使用base标签所有相对路径(包括链接、CSS等)设置一个新的基础 - 编辑:在你的情况下这可能不是一个好主意:)
于 2013-02-15T12:27:52.213 回答
0
include(dirname(__FILE__).'/include.php');

参考: http: //php.net/manual/en/language.constants.predefined.php

文件的完整路径和文件名。如果在包含中使用,则返回包含文件的名称。自 PHP 4.0.2 起,FILE始终包含一个绝对路径,其中符号链接已解析,而在旧版本中,它在某些情况下包含相对路径。

于 2013-02-15T12:27:57.893 回答