2013-02-15 58 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

    相關問題