2012-11-08 84 views
1

我有一个页面,index.php,像这样(简化):PHP包括似乎使页面解释自己作为一个目录

<img src="content/banner.png"/> 

的图像加载罚款。但是当我包含某个(WordPress)脚本时,像这样,

<img src="content/banner.png"/> 
<?php 
    include('template-loader.php'); 
?> 

图像不再加载!我还注意到浏览器中的URL变成了index.php/

这怎么可能?当然图像不会加载,因为我使用相对路径,它正在寻找index.php/content/banner.jpg。诚然,我可以使用绝对路径来解决这个问题,但我想知道会发生什么情况以及如何在PHP中解决问题。

我正在测试本地wamp安装,并已禁用所有mod_rewrite s等,以确保它不是外部导致问题的东西。

+0

这是否发生如果你这样做:'include(dirname(__ FILE __)。'template-loader.php');' –

+0

@Cthulhu - 我实际上已经尝试过了,使用WordPress的'ABSPATH'无济于事。我刚刚找到了真正的罪魁祸首,并回答了我自己的问题。但是,感谢您的建议。 –

回答

0

D'oh。发布后几分钟,我发现罪魁祸首,在脚本中:

/** 
* Loads the correct template based on the visitor's url 
* @package WordPress 
*/ 
if (defined('WP_USE_THEMES') && WP_USE_THEMES) 
     do_action('template_redirect'); 

它正在做某种重定向;评论这一切使一切按预期工作。

我还是真的不知道如何该脚本能神奇地重定向到index.php/就好像它是一个目录(并有文件实际负载)

我将在未来删除这个问题,但...如果它似乎没有帮助任何人(基于观点和投票)。