【问题标题】:Can't figure out why root-relative link will not work无法弄清楚为什么根相对链接不起作用
【发布时间】:2015-04-28 21:45:43
【问题描述】:

我正在努力使我的网络应用程序更便携,但在子目录根目录中创建链接时遇到问题。

/website - 假设这是我的网站目录。
/inc - 这是我的页眉、页脚和最终我的包含目录 配置文件。

网站目录中的一切正常。

我正在尝试将我的页眉/页脚文件包含在收据目录中...

include("/website/inc/header.php");

但我明白了..

警告:包含(/website/inc/header.php):无法打开流:否 F:\xampp\htdocs\website\receipt\index.php 中的此类文件或目录 第 8 行

警告:include():无法打开“/website/inc/header.php” 包含 (include_path='.;F:\xampp\php\PEAR') 在 F:\xampp\htdocs\website\receipt\index.php 在第 8 行

在我的浏览器中。我试过删除 / 甚至添加 localhosthtdocs (这只是让它工作的绝望尝试)。我做错了什么,我该如何纠正?

【问题讨论】:

    标签: php html apache directory xampp


    【解决方案1】:

    这是因为以/ 开头的文件路径被视为从文件系统的根目录开始的文件路径。你有F:\ 作为根,这就是为什么这样的目录不存在。

    在您的情况下,您必须执行../../website/inc/header.php 之类的操作,但这取决于您的脚本所在文件夹的位置。

    PHP(但不是 HTML!)适用于整个文件系统,而 HTML 仅适用于站点的主目录。

    顺便说一句,这样的文件路径在 Windows 上是不允许的,它们只在类 UNIX 系统上可用。如果这种带有/ 的结构在您的服务器上有效,这很奇怪,因为Windows 将\ 作为路径分隔符。你的代码看起来像..\..\website\inc\header.php。请注意,您可能需要通过添加另一个反斜杠来转义反斜杠,例如 \\

    【讨论】:

    • PHP 在 Windows 上使用“/”就像使用“\”一样容易
    • 当你说“文件系统的根”时,是指我的htdocs 目录还是F:
    • @Atonium,请仔细阅读,我已经提到 F:// 是根
    • @Atonium - 文件系统的根来自“F:\”
    • @ForceBru 错过了,抱歉。
    猜你喜欢
    • 2021-05-29
    • 1970-01-01
    • 2014-12-08
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多