0

私の基本的なファイル構造は次のようなものです:

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] ことを回避しようとしています:

  1. 次のようにgala.phpでhtmlファイル参照を使用します:../../../../includes/menu.php [正しいグローバルインクルードを見つけるため]

  2. また、次のようにmenu.phpでリンク参照を使用しないでください: /images/global/nav/nav-img.jpg

**

アップデート

**

  1. 解決した

他の人が投稿したように、私は最終的に以下を使用しました:

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 タイプのファイル参照を作成して、インクルードが常にそれらを見つけられるようにする方法はありますか?

4

1 に答える 1

0

おそらく、ここにある $_SERVER 情報を使用して $server_root 変数または $prefix 変数を割り当て、それを基にすべてを作成することができます。

于 2013-03-15T01:27:27.907 に答える