0

次のように$_SERVER["DOCUMENT_ROOT"]を使用して、ヘッダーファイルのスタイルシートにリンクしようとしています。

<head>
    <?php
        print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
    ?>
    <title>eLMS</title>

</head>

ローカルでテストしているので、次のようにパスを取得しています。

<head>
    <link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' />      <title>eLMS</title>

</head>

そして、これはFirefoxではレンダリングされません。ただし、IEでは機能します。これは明らかに検証の問題です。しかし、私はサーバーで同じコードを試しましたが、同じ結果になりました。:(

これを修正するにはどうすればよいですか?最終製品はローカルサーバーで実行される場合と実行されない場合があるため、コードを柔軟にする必要があります。

PHP5.2.8でAbyssWebserverx1を使用しています

インクルードフォルダーをアプリのすべてのサブディレクトリにコピーしたくないため、絶対パスを使用する必要があります。どこからでも参照できるようにする必要があります。

4

6 に答える 6

9

これを使用してください:

<head>
    <link href='/include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

または、ローカルで使用する場合:

<head>
    <link href='../include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

ドキュメントルートは、HTML内ではなく、内部使用(PHP内)専用です。

于 2010-01-06T19:12:54.137 に答える
1

使用してみてください:

$_SERVER['HTTP_HOST']
于 2010-01-06T19:13:13.567 に答える
1

ファイルシステムの絶対パスは使用せず、ドキュメントルートからの相対パス(ただし、ドキュメントルートを含まないパス)を使用してください。この場合は/include/style.css

于 2010-01-06T19:14:30.040 に答える
0

ブラウザからローカルファイルを使用するには、fileスキームを使用します。

file://C:/dir/file.ext
file:///dir/file.ext

ドライブ文字が付いたウィンドウに2つ、ルートスラッシュが付いた* nixに3つ、おそらく2つまたは3つのスラッシュが必要かどうかはわかりませんが、ドライブ文字が付いた3つのスラッシュを見たことを思い出しているようです。それを試してみてください!:P

于 2010-01-06T19:12:52.890 に答える
0

DIRECTORY_SEPARATOR定数を使用してみてください。Windowsシステムおよび/*nixシステムでは\を返します。

于 2010-01-06T19:12:54.783 に答える
0

まず、ドキュメントルートは、文字通りWebサーバーの/が配置されているディレクトリです。通常、これをWeb上のコンテンツで使用することは望ましくありません。代わりに/を使用してください。

于 2010-01-06T19:13:31.360 に答える