12

すべての CSS リンク情報を含むヘッダー ファイルに別の php ドキュメントをリンクしようとしているので、サイトのデザインを変更したい場合は、1 つの場所で css パスを変更するだけで済みます (特に、さまざまな配色の場合)。スキームを追加するときは、すべてのページを処理する代わりに、この 1 つのファイルの 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 が正しい場所に設定されていることは確かですが、スタイルが表示されません。私は何かを逃していますか?これを設定するためのより信頼できる方法はありますか?

4

4 に答える 4

12

私の経験では、Mike が上で言ったことを繰り返すこと$_SERVER['DOCUMENT_ROOT']は、サーバー上のファイルを見つけるための最良のオプションにすぎません。何かを含めるか要求するために php が必要な場合は、サーバー側のパスをDOCUMENT_ROOT.

ただし、css ファイルはクライアント側です。これらは、相対 Web サイト パスから含まれています。代わりに行う場合

<link rel='stylesheet' type='text/css' href='/styles/newscontent.css'/>

hrefの開始/部分は、常にドメインのルートから取得するようブラウザに指示します: http://yourdomain.com/styles/newscontent.css.

于 2012-12-07T18:43:07.683 に答える
5

次のように、$_SERVER["DOCUMENT_URI"]の代わりに使用する必要があります。$_SERVER["DOCUMENT_ROOT"]

echo "<link rel='stylesheet' type='text/css' href='" . dirname($_SERVER['DOCUMENT_URI']) . "/styles/basicblue.css'/>";
于 2012-12-07T18:44:43.970 に答える