我有一个html文件images.html,显示子目录“img”中的图像。它使用相对路径访问subdir中的图像。
在我的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" />
答案 0 :(得分: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
,但无法找到。{/ p>
你可以:
/dir1/dir2/img/...
)base
tag为所有相对路径(包括链接,CSS等)设置新基础 - 编辑:在您的情况下,这可能不是一个好主意:)< / LI>
答案 1 :(得分:0)
include(dirname(__FILE__).'/include.php');
参考:http://php.net/manual/en/language.constants.predefined.php
文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。自PHP 4.0.2起, FILE 总是包含已解析符号链接的绝对路径,而在旧版本中,它在某些情况下包含相对路径。