PHP头文件包含文件在一个文件中工作,在另一个文件中不工作

PHP头文件包含文件在一个文件中工作,在另一个文件中不工作,php,html,css,Php,Html,Css,我才刚开始使用PHP,有一个问题让我头疼 我有一个包含我的header.php和footer.php的include文件夹。在我的header.php中,我有我的html头标签。包括身体标签的一部分,在整个网站上都是一样的。我遇到的问题是,我无法让我的css文件连接到不同目录中的其他页面。请参见下面的示例“我的文件结构” index.php -(css)bootstrap.css,styles.css -(inc)header.php、footer.php -(房间)蹒跚学步儿童.php,蒙台梭

我才刚开始使用PHP,有一个问题让我头疼

我有一个包含我的
header.php
footer.php
的include文件夹。在我的
header.php
中,我有我的html头标签。包括身体标签的一部分,在整个网站上都是一样的。我遇到的问题是,我无法让我的css文件连接到不同目录中的其他页面。请参见下面的示例“我的文件结构”

index.php

-(css)bootstrap.css,styles.css

-(inc)header.php、footer.php

-(房间)蹒跚学步儿童.php,蒙台梭利.php

-(其他)otherFile.php和andother.php

因此
header.php
有指向
bootstrap.css
style.css
和所有图像的链接

如果我将
header.php
包含在
蹒跚学步儿童.php
中,一切都会正常工作。然后我把它包括在
index.php中,我的css或图像都没有显示出来。在
header.php
中,我有一个指向
bootstrap.css
的链接:

同样适用于
styles.css
,它将在
jackballs.php
中工作,但不适用于
index.php

这是我的
header.php
蹒跚学步儿童.php

    define("APPLICATION_PATH", realpath('../Sites/'));
define("CURRENT_PATH", getcwd());

$paths = array(APPLICATION_PATH, CURRENT_PATH);
set_include_path(implode($paths, PATH_SEPARATOR));

include('../inc/header.php');

如何将所有图像和css包含在
header.php中,然后将其包含在任何其他文件中?

您应该使用绝对链接而不是相对链接。

事实上,html是逐字包含的,css表是在php执行后链接的。这意味着CSS包含将适用于与jackballs.php相同目录中的每个页面,但不适用于其他目录。

最简单的方法是使用绝对URL而不是相对URL。另一种方法是为每个目录指定带有相对路径的特定头。这更麻烦,而且只有在您更改主机时才是必要的,因为您没有更新要做。另一种方法是使用包含文件中使用的PHP变量根据页面本身更改路径。例如,根目录中的页面将使用$path='',而内部目录中的页面将使用$path='../'等等。。。只需确保在插入包含的代码之前更新$path变量。

看起来您的路径错误。当您更改到另一个目录时,您必须记住路径会更改,并且您的包含文件可能需要更新。我理解这一点,但有什么方法可以做到这一点吗?因为我的header.php包含在所有页面中。它们中的哪些在不同的目录中。或者我应该在所有目录中创建header.php include文件吗?“include”不会更改当前的工作目录。因此,如果在嵌套的包含文件中使用相对路径,则该路径相对于原始工作目录,而不是当前“包含文件”所在的位置。它可能会变得非常混乱与此评论一样。@webAwwards调试我的代码并不是字面上的我的代码,如果我在本地主机上开发,请了解更多信息。然后将我的网站移动到主机,绝对路径是否需要更新?不一定。如果命名与宿主根目录相关的路径(由变量$\u SERVER[“DOCUMENT\u root”]给出),则迁移时所有内容都将自动调整。