2013-02-15 119 views
1

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

事事不顺心的时候,我的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 

的index.php

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

images.html

<img src="img/flower.png" /> 
+2

PHP的内部工作不影响浏览器中加载图像的方式。显示更多信息:您的''标签有哪些路径,它们位于何处? – 2013-02-15 12:11:26

回答

2

这是H TML问题,而不是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 tag设置为新基地所有相对路径(包括链接,CSS等) - 编辑:这可能不是你的情况是个好主意:)
  • 0
    include(dirname(__FILE__).'/include.php'); 
    

    REF:http://php.net/manual/en/language.constants.predefined.php

    该文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。由于PHP 4.0.2,FILE始终包含解析符号链接的绝对路径,而在较早的版本中,它包含某些情况下的相对路径。

    +0

    这个问题与PHP和包含文件的方式无关(在包含文件中没有PHP)。这是关于浏览器的路径分辨率。 – tmuguet 2013-02-15 12:35:07