1

小さな Web サイトを構築しているときに PATH の問題が発生しました。このサイトは、異なるフォルダにあるいくつかの標準ページと、_include という名前のフォルダにあるその他のいくつかのページで構成されています。これで、各ページに 3 つのファイル (menu.php、header.php、footer.php) が含まれるようになりました。3 つすべてが _include フォルダーに含まれています。私は set_include_path を使用しましたが、PHP に関しては非常にうまく機能します。ただし、HTML に関しては問題があります。header.php ファイルには、この構文があります<img src="_pics/header.png" width="XXX" height="YYY" />

header.php を含むすべてのファイルが同じディレクトリにある限り、コードは正常に機能し、画像が読み込まれます。しかし、サブディレクトリのページに含めようとすると、画像が読み込まれません。これは、ディレクトリ レベルが変更されたことを考えると明らかです。

だから私の質問は、サイト上のどこに配置されていても、含まれている PHP ファイルで HTML パスが機能するように、この問題を解決するにはどうすればよいですか?

4

4 に答える 4

4

最も簡単な解決策は、Webルートを基準にしたアセットの絶対パスを常に使用することです。

<img src="/_pics/header.png" width="XXX" height="YYY" />
          ^ absolute path

これは、画像、javascriptファイル、cssファイルなどのすべてのものに適用されます。

これで、インクルードファイルがどこにあるかは問題ではなく、Webルートの外部にある可能性もあります。

于 2012-11-22T14:23:33.430 に答える
0

絶対 URL と相対 URLの違いを理解する必要があります。

header.php を含むすべてのファイルが同じディレクトリにある限り、コードは正常に機能し、画像が読み込まれます。しかし、サブディレクトリのページに含めようとすると、画像が読み込まれません。これは、ディレクトリ レベルが変更されたことを考えると明らかです。

<img src="_pics/header.png" width="XXX" height="YYY" />

サブディレクトリに含めようとしたときのマッピング方法-

<img src="subdir/_pics/header.png" width="XXX" height="YYY" />

ご存知のように、画像は下に配置されていないsubdirため、画像は読み込まれません。

この場合、例として で始まり でhttp://終わる絶対 URL を使用する必要がありますpicname.png

于 2012-11-22T14:36:08.653 に答える
0

パスが静的な場合は、php の document_root または server_name 変数を使用できます。

<?php echo "<img src=\"http://".$_SERVER['SERVER_NAME']."/_pics/header.png\" width="XXX" height="YYY" />"; ?>
<?php echo "<img src=\"".$_SERVER['DOCUMENT_ROOT']."/_pics/header.png\" width="XXX" height="YYY" />"; ?>

ページが移動された場合は、新しい場所を反映するようにこのコードを変更する必要があります。

于 2012-11-22T14:28:47.117 に答える
-1

http:// domain_name/path などのフル パスを使用します。これは、おそらく探しているものです。

于 2012-11-22T14:29:42.083 に答える