PHP中的服务器根/文件结构

时间:2014-11-26 19:46:41

标签: php root server slash easyphp

我正在为我的雇主做一个小型内部网站点。此时我是唯一的开发人员。 (对他们来说有祸了。)我仍然非常喜欢网络开发。

我正在使用NetBeans作为“服务器”(最终使用EasyPHP)运行此站点的开发版本。当我在NetBeans中运行项目时,浏览器的站点根目录为“localhost:8000”或任何端口。那里没有错。当我尝试通过EasyPHP直接运行它时,它有“别名”,它指向我的硬盘驱动器上的指定目录作为站点根目录,因此浏览器会说“127.0.0.1/Intranet/”作为站点根目录。不幸的是,这会以多种方式打破一切。首先,我获取网站根的方式:

 define('WEB_ROOT', filter_input(INPUT_SERVER, 'DOCUMENT_ROOT');
 define('SOURCE_ROOT', dirname(WEB_ROOT);

WEB_ROOT最终指向安装了EasyPHP的目录,而不是该网站所在的目录,因此其中包含WEB_ROOT的任何包含都会中断。相反,还有一个名为'CONTEXT_DOCUMENT_ROOT'的$ _SERVER键指向正确的位置。好的,很容易测试该密钥isset()并使用它,如果是,但是,我的css和javascript文件的链接被破坏了,因为它们在我的代码中链接了/js.js领先的斜线。我认为领先的/会自动指向网站根目录,但它似乎指向浏览器中的根,因为控制台说它无法找到“127.0.0.1/js.js”应该一直在寻找“127.0.0.1/Intranet/js.js”。

这有什么意义吗?领先的斜线实际上做了什么?我应该用我的WEB_ROOT常量链接我的css和js吗?我不想用相对路径来做,因为(此时)这个站点中有很多目录和子目录,其中任何一个都需要找到WEB_ROOT / js.js或style.css。

虽然prod版本正在运行(它在不同的计算机上使用不同的服务器软件),但这些错误让我觉得我做错了。有什么想法吗?

谢谢!

PS。 This question的答案在某种程度上说明了我的问题,但我想知道是否有人能够进一步解释正斜线。

0 个答案:

没有答案