【问题标题】:How do I change the path of files in the included header file dynamically?如何动态更改包含的头文件中的文件路径?
【发布时间】:2013-05-26 00:52:38
【问题描述】:

好的,这个问题可能有点令人困惑,但这里是:

如何动态更改包含的头文件中的文件路径?例如,我的根目录中有一个文件,它使用与名为articles 的子目录中的文件相同的标头模板。

主页:

/index.php

文章页面

articles/index.php

这两个文件都使用相同的页眉和页脚包含的文件,位于:

templates/header.php
templates/footer.php

头文件和页脚文件的 CSS、JS 路径都是相对于根目录的。如何使 CSS、JS 和其他链接的文件路径根据页眉和页脚文件包含在哪个目录中动态变化。

这是我在任何地方遇到的第一个问题,所以请放轻松,忍受我的无知。

【问题讨论】:

    标签: php include directory hyperlink root


    【解决方案1】:

    当您包含在您的页眉和页脚文件中时,您可以使用 $_SERVER['DOCUMENT_ROOT'] 变量。 例如..如果你有

    include 'main_menu.php';
    

    改成

    include $_SERVER['DOCUMENT_ROOT'].'main_menu.php';
    

    (你必须调整它以适应你的需要)

    编辑: 抱歉我误会了。使用HTML base tag 例如:

    <base href="http://www.yoursite.com/">
    

    在您网站所有页面的头部。

    【讨论】:

    • 那么这是否也会改变您示例中“mail_menu.php”中的所有链接?如果没有,这不是我要找的。​​span>
    • 不,不会的。您可以在 &lt;head&gt; 部分中使用 html &lt;base href="http://www.yoursite.com/"&gt;,然后所有 HTML 包括 CSS 和 JS,并且无论正在执行的文件在哪个目录中,相对链接都将相对于您网站的根目录。
    • 但是如果我更改域以及我在本地托管怎么办。我知道我可以输入 localhost 但还有其他方法吗?
    • 通常你要做的是创建一个帮助文件。例如:templates/headInclude.php 将包含您希望在所有页面中包含的一些 语句(包括 、主要 CSS 的加载等),然后确保包含此文件在所有页面的 部分中。当您必须更改 时,只需更新 templates/headInclude.php,它将影响包含它的所有页面。
    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 2014-10-21
    • 1970-01-01
    • 2018-02-09
    • 2012-01-15
    • 2015-11-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多