我的基本文件结构如下:
domain.com/
home.php
images/
global/
nav/
nav-img.jpg
includes/
menu.php
fruit/
apples/
red/
gala/
gala.php
我想创建一个建立我的Web根目录的全局路径,我可以在每个页面中随时随地引用它。我试图弄清楚如何使用[例如] define(ROOT),以及如何从单个页面调用它。
知道所有页面都使用[menu.php],我的障碍是,例如:
从gala.php页面 - 当我点击[home]时,它会查找:
/fruit/apples/red/gala/home.php
但那不存在。
此外,我试图避免这些[2]事情如果可能:
使用 gala.php 中的html文件引用,如下所示: ../../../../includes/menu.php [找到正确的全球包括]
并避免在 menu.php 中使用链接引用,如下所示: /images/global/nav/nav-img.jpg
**
**
就像其他人发布的那样,我最终使用了:
define('ROOT',$_SERVER['DOCUMENT_ROOT']);
define('INCLUDES',ROOT.'/path/to/includes/folder/');
当我从html调用它时效果很好:
include(INCLUDES.'menu.php'); // or any file
这很棒,因为我可以找到我的包含,无论它们从哪里被调用......一旦我弄清楚如何使用它,这很容易。
**
**
[对于上面的#2]唯一剩下的问题是,包含从ROOT以外的级别调用包含的所有html链接都被破坏了。
我发现解决方法是使用绝对路径,如:
href="/images/global/nav/nav-img.jpg"
有没有办法可以为图片位置创建DOCUMENT_ROOT类型的文件参考,以便我的包含总能找到它们?