私の基本的なファイル構造は次のようなものです:
domain.com/
home.php
images/
global/
nav/
nav-img.jpg
includes/
menu.php
fruit/
apples/
red/
gala/
gala.php
どこにいても各ページでその場で参照できる Web ルートを確立するグローバル パスを作成したいと考えています。[たとえば] define(ROOT)の使用方法と、個々のページから呼び出す方法を理解しようとしています。
すべてのページが [menu.php] を使用していることを知っているので、私の障害は、たとえば次のとおりです。
gala.php ページから - [home] をクリックすると、以下が検索されます。
/fruit/apples/red/gala/home.php
しかし、それは存在しません。
また、可能であれば、これらの [2] ことを回避しようとしています:
次のようにgala.phpでhtmlファイル参照を使用します:../../../../includes/menu.php [正しいグローバルインクルードを見つけるため]
また、次のようにmenu.phpでリンク参照を使用しないでください: /images/global/nav/nav-img.jpg
**
アップデート
**
- 解決した
他の人が投稿したように、私は最終的に以下を使用しました:
define('ROOT',$_SERVER['DOCUMENT_ROOT']);
define('INCLUDES',ROOT.'/path/to/includes/folder/');
次のようにhtmlから呼び出すとうまくいきました:
include(INCLUDES.'menu.php'); // or any file
インクルードがどこから呼び出されても見つけることができるので、これは素晴らしいことでした...そして、使い方を理解すれば、これは簡単でした。
**
残りの問題
**
[上記の #2 について] 唯一残っている問題は、ROOT 以外のレベルからインクルードが呼び出された場所で、インクルード内のすべての html リンクが壊れていることです。
回避策は、次のような絶対パスを使用することです。
href="/images/global/nav/nav-img.jpg"
画像の場所の DOCUMENT_ROOT タイプのファイル参照を作成して、インクルードが常にそれらを見つけられるようにする方法はありますか?