2

include()ステートメントを使用して、ヘッダー、フッター、ナビゲーションなどを標準化するようにWeb サイトをセットアップしています。

include('header.php);

ただし、2 つの異なるディレクトリ内のページに同じヘッダー ファイルを使用すると、内部に含まれる相対リンクがheader.php壊れます。

header.php
<a href="images/dog.jpg">

index.php
include('header.php);

<a href="images/dog.jpg">

これは、index.php ファイルからの dog.jpg への正しいパスであるため、機能します。

Animals/canine.phpは次の
include('header.php);
ようになります
<a href="images/dog.jpg">

Animals/images/dog.jpg が存在しないため、これは機能しません。

それで、私の質問は、header.php が含まれている場合、index.php とanimals/canine.php の両方で動作するように、URL を dog.jpg に調整する header.php ファイル内で何を変更できますか?

4

2 に答える 2

8

インクルードを絶対パスを使用するように変更します。

<a href="/images/dog.jpg">

このようにして、それらはサイトのルートに基づいており、常に適切なフォルダーを指しています。

于 2012-07-31T21:07:17.897 に答える
1

と呼ばれる新しい変数を作成し$root_path、現在のページに関連する Web ディレクトリのルートへのパスを入れます。header.php をインクルードする前に宣言されていることを確認してください

これでmysite.com/junk/index.php、画像アセットが../images/

<?php
$root_path = '../'
include('header.php');

アセットの URL を出力するときは$root_path、その前に置きます。

于 2012-07-31T21:10:18.973 に答える