【问题标题】:Global File Referencing全局文件引用
【发布时间】:2013-03-03 12:47:13
【问题描述】:

我的基本文件结构类似于:

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] 事情:

  1. gala.php 中使用 html 文件引用,如下所示: ../../../../includes/menu.php [找到正确的全局包含]

  2. 并避免像这样在 menu.php 中使用链接引用: /images/global/nav/nav-img.jpg

**

更新

**

  1. 已解决

就像其他人发布的一样,我最终使用了:

define('ROOT',$_SERVER['DOCUMENT_ROOT']); 
define('INCLUDES',ROOT.'/path/to/includes/folder/');

当我从 html 调用它时效果很好:

include(INCLUDES.'menu.php');  // or any file

这很棒,因为无论从哪里调用它们,我都可以找到我的包含...一旦我弄清楚如何使用它,这很容易。

**

剩下的问题

**

[对于上面的 #2] 唯一剩下的问题是我在包含中的所有 html 链接都被破坏了,其中包含是从 ROOT 以外的级别调用的。

我发现一种解决方法是只使用绝对路径,例如:

href="/images/global/nav/nav-img.jpg"

有没有一种方法可以为图像位置创建 DOCUMENT_ROOT 类型的文件引用,以便我的包含总能找到它们?

【问题讨论】:

    标签: php html url structured-data


    【解决方案1】:

    也许,您可以使用找到 here 的 $_SERVER 信息来分配 $server_root 变量或 $prefix 变量,并以此为基础。

    【讨论】:

    • 我能想到的唯一另一件事是在您的 (X)HTML 中使用此代码:
    • 是的,我刚刚找到<base> thx paul。但这会破坏页面上的所有其他链接。
    • 也感谢这个想法,尽管 $_SERVER 看起来已经过时了。
    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多