我正在尝试在包含所有CSS链接信息的头文件中链接一个单独的php文档,这样如果我想更改网站的设计,我只需要在一个位置更改css路径(特别是各种颜色方案。当我添加更多方案时,我可以将它们放在这个文件中的switch语句中,而不是遍历每一页。
我正在尝试编写代码,以便无论在哪个服务器上运行它(我的本地测试服务器或远程站点服务器)都可以正常工作,而不会更改任何路径信息。
根据我的阅读,似乎$_SERVER['DOCUMENT_ROOT']
是查找网站基本文件夹路径的最佳方式,这样我就可以找到服务器文件夹/ css文件,无论页面文件位于何处。< / p>
以下是我如何设置它的示例:
<!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设置在正确的位置,但我的样式没有显示出来。我错过了什么吗?是否有更可靠的方法来设置它?
答案 0 :(得分:10)
回应Mike上面所说的,根据我的经验,$_SERVER['DOCUMENT_ROOT']
只是在服务器上查找文件的最佳选择。如果您需要php来包含或需要某些内容,请找到DOCUMENT_ROOT
的服务器端路径。
但是,css文件是客户端。它们包含在相对网站路径中。如果你只是做
<link rel='stylesheet' type='text/css' href='/styles/newscontent.css'/>
href中的开头/
告诉浏览器始终从您网域的根目录中检索它:http://yourdomain.com/styles/newscontent.css
。
答案 1 :(得分:2)
您必须使用$_SERVER["DOCUMENT_URI"]
代替$_SERVER["DOCUMENT_ROOT"]
,如下所示:
echo "<link rel='stylesheet' type='text/css' href='" . dirname($_SERVER['DOCUMENT_URI']) . "/styles/basicblue.css'/>";
答案 2 :(得分:0)
我结束了减去Web根路径以获得相对路径的操作
str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER["SCRIPT_FILENAME"]);
因此代替了/home/u/username/example.com/public_html/webfolder/index.php
您将获得/webfolder/index.php