1

我为我的网站创建了一个 config.php 文件。它似乎正在工作,但图像未显示。

define('HOST' , $_SERVER['DOCUMENT_ROOT']);
define('DIR_BASE',      HOST.'/m.pdi');
define('DIR_INCLUDES',    DIR_BASE . '/includes/');
define('VIEW_HEADER',   DIR_INCLUDES . 'header.php');
define('VIEW_NAVIGATION',   DIR_INCLUDES . 'horizontalmainmenus.php');
define('VIEW_FOOTER',   DIR_INCLUDES . 'footer.php');
define('DIR_IMAGES',   DIR_BASE . '/images/');

<img src="<?PHP echo DIR_IMAGES; ?>final-logo.jpg">

我的图像位置看起来像http://192.168.1.8/var/www/html/m.pdi/images/final-logo.jpg

如何修复此错误?

4

4 回答 4

2

您的图像路径必须相对于您的网络根目录

define('DIR_IMAGES', '/m.pdi/images/');

这意味着您的网络根目录 /m.pdi/images/

于 2012-10-03T12:38:56.097 回答
2
define('HOST' , $_SERVER['DOCUMENT_ROOT']);

这是错误的。你可能的意思是:

define('HOST' , $_SERVER['HTTP_HOST']);

但即便如此,生成的路径也是错误的,因为主机名不应真正出现在站点本地链接中。

于 2012-10-03T12:44:29.663 回答
2

你得到的$_SERVER['DOCUMENT_ROOT']是:

当前脚本在其下执行的文档根目录,如服务器的配置文件中所定义。

你得到系统路径/var/www/html/,你可以这样做:

define('DIR_IMAGES', '/m.pdi/images/'); //relative path
//OR define('DIR_IMAGES', $_SERVER['HTTP_HOST'] . '/m.pdi/images/');

<img src="<?php echo DIR_IMAGES; ?>final-logo.jpg">

$_SERVER 更多信息..

于 2012-10-03T12:47:36.510 回答
0

那是因为您将真实路径(在服务器上)与 URL 混淆了。

查看您生成的 HTML,您会发现有什么问题。

于 2012-10-03T12:38:55.323 回答