Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确地引用css文件并包含在php项目中?_Php_Include - Fatal编程技术网

如何正确地引用css文件并包含在php项目中?

如何正确地引用css文件并包含在php项目中?,php,include,Php,Include,我是php新手,了解这是一个非常常见的问题。我在网上读过很多相关的问题,这里是stack overflow,但是我还没有成功地实现它们 我有一个目录结构如下的项目: Project/ includes/ header.php footer.php sidebar.php css/ style.css index.php blog/

我是php新手,了解这是一个非常常见的问题。我在网上读过很多相关的问题,这里是stack overflow,但是我还没有成功地实现它们

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

Project/
     includes/
              header.php
              footer.php
              sidebar.php
     css/
              style.css
     index.php
     blog/
              index.php
在根目录的index.php中,我拉入了如下所示的includes:

include 'includes/header.php';
以及header.php中的css文件,如下所示:

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

现在,它可以在根目录中的index.php文件和根目录中的任何其他文件上工作。但是,对于子文件夹(例如blog/index.php)中的所有页面,它都会断开

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

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

任何帮助都将不胜感激


谢谢。

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

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

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


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

include$_SERVER['DOCUMENT_ROOT']./includes/header.php';
您当前使用的方式不适用于域名根目录以外的任何文件。它正在做的事情如下

您位于,并且您的站点包含css/style.css,因此它将附加到域中。在根级别,这很好。现在,如果你是在它仍然是附加到域,如果你不包括领先的斜杠。。。所以现在它正在寻找你的风格。添加前导斜杠告诉服务器,我想在我的域的根中查找它


我为
提供的第二个选项是,您需要通过应用程序的根引用它。使用以下选项

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

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


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

include$_SERVER['DOCUMENT_ROOT']./includes/header.php';
您当前使用的方式不适用于域名根目录以外的任何文件。它正在做的事情如下

您位于,并且您的站点包含css/style.css,因此它将附加到域中。在根级别,这很好。现在,如果你是在它仍然是附加到域,如果你不包括领先的斜杠。。。所以现在它正在寻找你的风格。添加前导斜杠告诉服务器,我想在我的域的根中查找它


我为
提供的第二个选择简单但不是最好的方法是,您可以始终链接到绝对路径:(我不推荐)



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

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



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

如果这样做的话,我会将它设置为一个常量,而不是一个变量,它绝对是在应用程序中首先定义的。通过使用
DEFINE('BASE\u URL','')
您可以确信
BASE\u URL
将永远不会被覆盖。目前,我在标题
中包含了此html标记。这就解决了链接到样式表的问题。如果这样做,我会将它设置为一个常量,而不是一个变量,它绝对是在应用程序中首先定义的。通过使用
DEFINE('BASE\u URL','')
您可以确信
BASE\u URL
将永远不会被覆盖。目前,我在标题
中包含了此html标记。这解决了链接到样式表的问题。嗨,bretterer,谢谢你的建议。在链接到css文件之前添加斜杠似乎不起作用。当我这样做时,它没有引用它。已经说过,您的第二种方法是有效的,但在这种情况下,我将不得不硬编码在每个链接的路径。我一直在寻找一种更具伸缩性的方法,所以现在我按照MIIB的建议定义了基本url。成功了。谢谢你的帮助。嗨,布雷特,谢谢你的建议。在链接到css文件之前添加斜杠似乎不起作用。当我这样做时,它没有引用它。已经说过,您的第二种方法是有效的,但在这种情况下,我将不得不硬编码在每个链接的路径。我一直在寻找一种更具伸缩性的方法,所以现在我按照MIIB的建议定义了基本url。成功了。谢谢你的帮助。