1

我是 php 新手,知道这是一个很常见的问题。我已经在网上阅读了很多相关的问题,在这里堆栈溢出,但是我无法成功地实现它们。

我有一个目录结构如下的项目:

Project/
     includes/
              header.php
              footer.php
              sidebar.php
     css/
              style.css
     index.php
     blog/
              index.php

在根目录的 index.php 中,我像这样拉入包含:

include 'includes/header.php';

header.php 中的 css 文件如下所示:

<link rel="stylesheet" href="css/style.css">

现在这适用于根目录中的 index.php 文件和根目录中的任何其他文件。但是它会中断子文件夹中的所有页面,例如 blog/index.php

我的主要问题是如何正确引用我的 css 文件和项目中的包含,以便二级页面也可以访问这些文件?

注意:
- 我在本地服务器上工作
- 所有项目文件都包含在根目录的 PROJECT 文件夹中 - (localhost:8888/Project/index.php)

任何帮助都感激不尽。

谢谢你。

4

2 回答 2

1

您需要通过应用程序的根目录引用它。使用以下选项

 <link rel="stylesheet" href="/css/style.css">

 <link rel="stylesheet" href="//domain.com/css/style.css">


 include $_SERVER['DOCUMENT_ROOT'].'/includes/header.php';

您当前拥有的方式不适用于域名根目录之外的任何文件。它正在做的事情如下。

您在http://example.com/并且您的网站包含 css/style.css,因此它附加到域中。在根级别这很好。现在,如果您在http://example.com/myFile/andFolder,如果您不包含前导斜杠,它仍然会附加到域...所以现在它正在http://example.com寻找您的风格/myFile/andFolder/css/style.css。添加前导斜线是告诉服务器,我想在我的域的根目录中查找它。

我对域名前<link rel....两个选项的第二个选项只是通过 https:// 托管它的快速方法,如果这是当前页面所在的位置。//

于 2013-03-03T08:08:17.437 回答
0

简单但不是最好的方法是您始终可以链接到绝对路径:(我不推荐)

<link rel="stylesheet" href="http://localhost/Project/css/style.css">

最好有一个具有 base_url 变量的配置文件,并始终通过 base_url 链接您的 css 和其他内容;

于 2013-03-03T08:08:43.837 回答