サイトルートには、次のフォルダーとファイルがあります。
ファイル includes/scripts.php には、残りのページが機能するために必要なすべての css/js ファイルへのリンクが含まれています。サイト ルート (cart.php など) の任意のファイルから scripts.php を含めると、すべてのパスが正常に機能します。しかし、フォルダー (例: /admin) 内から含める場合、パスは正しくありません。明らかに、/admin 内に /js または /css dir がないためです。
scripts.php 内のパスを '../css/styles.css' から ./css/styles.css または単に /css/styles.css に変更するなど、いくつかのことを試しましたが、うまくいきませんでした。も試みinclude($_SERVER["DOCUMENT_ROOT"] . "includes/scripts.php");
ましたが、成功しませんでした。
scripts.php 内で相対パスを作成して、どこからインクルードされても、すべての css/js パスが正しく、サイトのルートに関連するようにするにはどうすればよいですか?
これは、scripts.php 内のリンクされたファイルの例です。
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.9.2.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.alerts.js"></script>
<script type="text/javascript" src="js/cookie.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<link rel="stylesheet" type="text/css" href="css/layout.css">
等...
編集:ほとんどの回答は、ファイルが UNIX 環境でホストされていることを当然のことと見なしていることがわかりますが、これは真実ではありません。Windows/Apache セットアップで開発されており、終了すると UNIX サーバーでホストされます。したがって、両方のシステムで機能するソリューションが必要なので、ファイルを編集/ライブ サーバーにアップロードするたびにコードを変更する必要はありません。