PHP标头包含文件在一个文件中工作而在其他文件中不起作用

时间:2014-03-13 12:32:50

标签: php html css

我只是开始使用PHP而且有一个问题就是杀了我。

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

的index.php

- (css)bootstrap.css,styles.css

- (inc)header.php,footer.php

- (rooms)toddlers.php,montessori.php

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

因此header.php包含指向bootstrap.cssstyles.css和所有图片的链接。

如果我在header.php中加入toddlers.php,一切正常。然后我把它包括在让我们说index.php并且没有我的css或图像显示。在header.php我有bootstrap.css的链接:

<link href="../bootstrap.min.css" rel="stylesheet">

styles.css的相同内容适用于toddlers.php但不适用index.php

这是header.php

中的toddlers.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');

如何在header.php中包含我的所有图片和CSS,然后将其包含在任何其他文件中?

2 个答案:

答案 0 :(得分:0)

你应该使用绝对链接而不是相对链接 实际上,html是逐字包含的,并且css表在php执行后链接。这意味着CSS包含将适用于与toddlers.php相同的目录中的每个页面,但不适用于其他页面。

答案 1 :(得分:0)

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