定义要从外部访问的root_path


Defining root_path to access externally

我正在为我的公司构建一个本地web应用程序,并尝试在examplep web服务器中运行它。我的问题是,我想设置我的根文件夹一次,并在我的所有文件中引用它。

例如,我的文件夹结构如下:

root/index.php
root/include/includefiles.php
root/reles/ajustes/ajustes.php
root/classes/html/menu.php
root/classes/html/rodape.php
root/img/head.png

我的所有文件都必须包括文件menu.php和rodape.php

使用相对路径,我将执行"include ../../classes/html/menu.php""../classes/html/menu.php"

在此之前,它是可以的,但在我的menu.php文件中,我有一个到其他文件的链接,我不能使用相对路径来链接到它,因为在index.php中,链接将是"/img/head.png",而在ajustes.php中,则是"../../img/head.png"

我的解决方案是定义一个根路径,并将所有相对路径链接到ROOT_PATH."/img/head.png".

我找到了一些有效的解决方案。当我尝试使用主机IP地址从另一台计算机外部访问我的应用程序时,我的问题就出现了,我可以访问我的网站,但链接显示为"c:/xampp/htdocs...",我不希望这样,我希望链接显示为"http://host-ip/img/head.png"

定义包含路径的一个好做法是在包含路径之前添加__DIR__魔术常量。这样,路径总是相对于当前文件的目录而不是工作目录来定义的。

公共url和内部服务器路径应该有不同的根路径。因此,我建议对includes和其他内部服务器路径使用__DIR__,并在html和其他公共路径中使用另一个常量。

编辑:澄清一下:内部服务器路径是服务器上的实际路径(www_root/foo/bar),公共路径是服务器软件通过http提供的路径(http://example.com/foo/bar)