1

OK、タイトルは少しわかりにくいですが、これが私の Web サイトの構造です。

/
|--header.php
|--page1.php
+--css
   |--style.css
+--subsection
   |--page2.php
+--functions
   |--classes.php

そうですね、page1.phppage2.phpwillの両方include header.phpです。これは、任意の php ページから header.php への相対ファイル パスを使用するだけで行います。

header.phpそれ自体に他のファイルが含まれます。たとえばcss/style.css、 とfunctions/classes.php.

次のように含めることができます。

<link rel="stylesheet" href="css/style.css">

<?php require_once("functions/classes.php"); ?>

これはpage1.php、相対パスが正しいため機能します。subsection/page2.phpこれは、パスが である必要があるため失敗しますが、../css/style.css../functions/classes.php定義されているとおりのままheader.phpです。

header.php私の質問は、呼び出し元のファイル(例: apage.php) が Web サイトのディレクトリのどこにあるかに関係なく、header.php が常に正しい相対ファイル パスをインクルードに使用するようにするにはどうすればよいかということです。

4

4 に答える 4

1

css /functions へのベース パスを設定します。

define('CSS_BASE','insert/full/path/here');

次に、header.php の css にアクセスします。

<link rel="stylesheet" href="<?=CSS_BASE;?>/style.css">
于 2013-07-18T11:40:38.683 に答える
0

PHP インクルードの場合、パスを header.php からの相対パスにすることは問題ありません。

css ファイルの場合、 のような絶対パスを使用する必要があります<link rel="stylesheet" href="/css/style.css">

編集: css/javascripts ファイルは "include" ではありません。これらは html タグであるため、ブラウザによってクライアント側で処理されます。そのため、パスは、サーバー上の場所ではなく、html が配置されるページの URL に対して相対的である必要があります。

于 2013-07-18T11:25:48.710 に答える
-1

page1 内に page2.php を含めている場合、パスは機能します。前のフォルダに戻る必要はありません。

于 2013-07-18T11:23:59.573 に答える