【发布时间】:2012-11-25 23:25:25
【问题描述】:
我正在尝试在包含所有 CSS 链接信息的头文件中链接一个单独的 php 文档,这样如果我想更改网站的设计,我只需在一个位置更改 css 路径(特别是对于各种配色方案。当我添加更多方案时,我可以将它们放在这个文件中的 switch 语句中,而不是遍历每一页。
我正在尝试编写代码,以便无论它在哪个服务器上运行(我的本地测试服务器或远程站点服务器)它都能正常工作,而无需更改任何路径信息。
从我阅读的内容来看,$_SERVER['DOCUMENT_ROOT'] 似乎是找到站点基本文件夹路径的最佳方式,这样无论页面文件位于何处,我都可以找到服务器文件夹/css 文件。
这是我如何设置的示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!--Meta Information-->
<!--CSS Info-->
<?php
require_once("styles/cssstyle.php");
?>
<title></title>
</head>
<body>
<!--pushes site down from top of screen -->
<div id="topmargin"></div>
<!-- sets div for site content (puts in middle) -->
<div id="_body">
<div id="banner">
<div class="logo"></div>
<div class="text"></div>
<div class="bannerstrip"></div>
</div>
<!--portion for site navigation-->
<div id="navigation">
<ul class="navlinks">
<li><a href="index.php">home</a></li>
</ul>
</div>
<!--Holds all site usable/readable content-->
<div id="leftwindow">
</div>
<div id="rightwindow">
</div>
<div id="rightwindow">
</div>
</div>
</body>
</html>
CSS php 文件是这样的:
<?php
echo "<link rel='stylesheet' type='text/css' href='styles/default.css'/>";
echo "<link rel='stylesheet' type='text/css' href='" . $_SERVER['DOCUMENT_ROOT'] . "styles/basicblue.css'/>";
echo "<link rel='stylesheet' type='text/css' href='" . $_SERVER['DOCUMENT_ROOT'] . "styles/forms.css'/>";
echo "<link rel='stylesheet' type='text/css' href='" . $_SERVER['DOCUMENT_ROOT'] . "styles/loginform.css'/>";
echo "<link rel='stylesheet' type='text/css' href='" . $_SERVER['DOCUMENT_ROOT'] . "styles/newscontent.css'/>";
?>
我确定 DOCUMENT_ROOT 已设置到正确的位置,但我的样式没有显示出来。我错过了什么吗?有没有更可靠的设置方法?
【问题讨论】:
-
我很肯定这与查找路径有关,因为当我直接链接到 index.php 中的样式时,样式可以正常工作
-
你试过查看生成的源代码吗?
$_SERVER['DOCUMENT_ROOT']返回当前脚本正在执行的文档根目录。这是一个服务器端路径,所以它不能在客户端工作。 -
我在我的电脑上安装了一个 apache 服务器来进行测试。当我查看实时代码时,它看起来路径是正确的。我浏览到文件来比较路径,它们是相同的,这是我不完全理解的。有一个区别:斜线方向相反,但这对 php 来说应该没关系,不是吗?