如何正确引用css文件并包含在php项目中?
我是新来的PHP,并明白,这是一个相当普遍的问题。我已经通过网络阅读了很多相关的问题,但是在堆栈溢出中我还没有成功实现它们。如何正确引用css文件并包含在php项目中?
我有一个目录结构像这样一个项目:
Project/
includes/
header.php
footer.php
sidebar.php
css/
style.css
index.php
blog/
index.php
在在我拉在根部的index.php包括像这样:
include 'includes/header.php';
并在CSS文件header.php像这样:
<link rel="stylesheet" href="css/style.css">
现在这个工作在index.php文件的根目录和任何其他文件pl在根之内。然而,它打破了一个子文件夹中的所有页面,例如博客/ index.php
我的主要问题是我如何正确引用我的CSS文件和我的包含在一个项目中,以便文件可以访问到二级页面以及?
注:
- 我的工作在本地服务器
上 - 所有的项目文件都包含在根目录中的项目文件夹内 - (本地主机:8888 /项目/的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';
您目前拥有它的方式不适用于您的域名根之外的任何文件。它在做什么是以下。
您位于http://example.com/,并且您的网站包含css/style.css,因此它将附加到该域。在根层面,这很好。现在如果你在http://example.com/myFile/andFolder它仍然附加到域,如果你不包括领先的斜线......所以现在它正在寻找你的风格http://example.com/myFile/andFolder/css/style.css。添加前导斜杠告诉服务器,我想在我的域的根目录中查找这个。
我的第二个选项是<link rel....
,两个//
之前的域名只是一个快速的方式来通过https://托管它,如果这是当前页面的位置。
最简单的方法,但不是最好的办法是,你总是可以链接到绝对路径:(我不推荐)
<link rel="stylesheet" href="http://localhost/Project/css/style.css">
最好是有一个具有BASE_URL可变的配置文件,始终链接你的CSS和其他的东西通过base_url;
嗨小灵通,感谢您提供您的建议。似乎在链接到css文件之前添加一个斜杠不起作用。当我这样做时,它不会引用它。说了你的第二种方法正在工作,但在这种情况下,我将不得不在每个链接中对路径进行硬编码。我正在寻找一个更具可扩展性的方法,所以现在我定义了MIIB建议的基础URL。有效。感谢您的帮助。 – ghosh 2013-03-03 09:44:48