質問

次のように、$ _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で行います。これは明らかに検証の問題です。しかし、私はサーバー上で同じコードを試しました - 同じ結果で。 :(

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

PHP 5.2.8でAbyss WebServer X1を使用しています

絶対パスを使用する必要があります - アプリのすべてのサブディレクトリにインクルードフォルダーをコピーしたくないからです。あらゆる場所からそれを参照できる必要があります。

役に立ちましたか?

解決

これを使用するだけです:

<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内)のみです。

他のヒント

使用してみてください:

$_SERVER['HTTP_HOST']

ファイルシステムの絶対パスを使用しないでください。ドキュメントルートに関連する(ただしない)パスを使用します。この場合、まさに /include/style.css.

ブラウザからローカルファイルを使用するには、 file 図式。

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

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

を使用してみてください DIRECTORY_SEPARATOR 絶え間ない。 Windows Systemsおよび / on *nixシステムでを返します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top