PHP获取相对于站点根目录的文档路径

Dav*_*rey 10 html css php

我试图在包含所有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>
Run Code Online (Sandbox Code Playgroud)

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'/>";
?>
Run Code Online (Sandbox Code Playgroud)

我是肯定的DOCUMENT_ROOT被设置到正确的位置,但我的样式没有出现.我错过了什么吗?是否有更可靠的方法来设置它?

Pat*_*k M 10

根据我的经验,回应Mike上面所说的,$_SERVER['DOCUMENT_ROOT']只是在服务器上查找文件的最佳选择.如果您需要php来包含或需要某些东西,请找到服务器端路径DOCUMENT_ROOT.

但是,css文件是客户端.它们包含在相对网站路径中.如果你只是这样做

<link rel='stylesheet' type='text/css' href='/styles/newscontent.css'/>
Run Code Online (Sandbox Code Playgroud)

/href中的开头告诉浏览器始终从域的根目录中检索它:http://yourdomain.com/styles/newscontent.css.


Nel*_*son 5

您必须使用$_SERVER["DOCUMENT_URI"]而不是$_SERVER["DOCUMENT_ROOT"],如下所示:

echo "<link rel='stylesheet' type='text/css' href='" . dirname($_SERVER['DOCUMENT_URI']) . "/styles/basicblue.css'/>";
Run Code Online (Sandbox Code Playgroud)