4

次のディレクトリ構造を考慮してください。

  • ------画像
  • ...............ロゴ.png
  • ------が含まれています
  • ....... vars.php
  • ------レイアウト
  • ....... content.php
  • ------ index.php

index.phpcontent.phpの両方でアクセス可能なvars.phpのlogo.pngのパス定数を定義するにはどうすればよいですか? 相対パスとして HTML タグと互換性がある必要があります。

<img src="<?php echo IMAGE_PATH; ?>">

次のように解析する必要があります

<img src="images/logo.png"> <!-- if used in index.php -->

<img src="../images/logo.png"> <!-- if used in content.php -->

新しい質問 (編集): include / requireメソッドを使用して php ファイルを含める場合、ルート相対パスは機能しますか?

4

6 に答える 6

5

コード<base>のセクションでタグを設定してみてください。<head>

すべての画像、css、およびjsファイルは、アドレスバーのURLの代わりにこれを使用します。

ベースの情報

于 2009-09-04T00:02:41.587 に答える
3

絶対 URL またはルート パスを使用すると、問題が最小限に抑えられます。システムが大きくなると、その設定を後悔することになるでしょう。

これは、物事を参照するための完全に合法的な方法です。(コメントで質問するように)

ドメイン間のセットアップが心配な場合は、ドメイン/ディレクトリ/などへの絶対パスで構成変数を作成するだけです

于 2009-09-03T23:54:08.597 に答える
3

「ルート相対」パスを使用できます。先頭にスラッシュを付けてすべてにリンクするだけです。つまり、

<img src="/images/logo.png">

これはhttp://yoursite.com/images/logo.png、yoursite.com のすべてのページから解決されます。

于 2009-09-03T23:55:41.823 に答える
1

すべてのパスをルートからの相対パスとして指定するだけです

<img src="/images/logo.png"> <!-- will work anywhere  -->
于 2009-09-03T23:57:06.453 に答える
0

主に、ルート相対パスを使用することをお勧めします。if()これは、サイトを別のホストに移動する際の複雑さを軽減するためだけであり、(スクリプトが実行されている場所からテストする条件を使用するのではなく) 一貫したパスを可能にします。

しかし、そうでなければ、あなたの提案は問題ありません。

于 2009-09-03T23:55:14.960 に答える
0

アプリケーションのベース URL のようなものを使用します。

define('APP_URL', 'http://example.com/path/to/app');
echo '<img src="'.APP_URL.IMAGE_PATH.'">';

または、より便利にするために、相対 URL を絶対 URL に解決する関数を作成します。

于 2009-09-04T12:52:53.420 に答える