2017-05-23 11 views
1

私はファイルを整理するためにサーバーサイドインクルードを使用しています。サーバー側はネストされた呼び出しでは機能しません

ネストされたファイルは機能していないようです。例えばのため: -

index.shtml - これは

<!doctype html> 
<html lang="en"> 
    <!--#include virtual="partials/head.shtml"--> 
<body> 
<!--#include virtual="partials/components/ads/horizontal-banner.shtml"--> 
<div id="site-wrapper"> 
    <header id="site-header"> 
     <!--#include virtual="partials/header.shtml"--> 
    </header> 

    <div id="site-body"> 
     <!--#include virtual="partials/pages/home.shtml"--> 
    </div> 

    <footer id="site-footer"> 
     <!--#include virtual="partials/footer.shtml"--> 
    </footer> 
</div> 
<!--#include virtual="partials/common.shtml"--> 

home.shtml内部に正常に動作し、されに続いて別のコール

<!--#include virtual="../components/newsletter.shtml"--> 

ありプロジェクト構造: -

project 
- css 
- assets 
- js 
- partials 
    - components 
     - ads 
     horizontal-banner.shtml 
     vertical-banner.shtml 
     newsletter.shtml 
     help.shtml 
    - pages 
     home.shtml 
     about.shtml 
    header.shtml 
    footer.shtml 
    head.shtml 
    common.shtml 
index.shtml 

答えて

0

Apacheのドキュメントを参照 - Server Side Includes:ヘッダーおよび/またはフッターのインクルードファイルは、これらの更新プログラムの 負担を軽減することができます使用

。 1つのフッターファイルを作成するだけで、 がinclude SSIコマンドで各ページに組み込むことができます。 include関数は、ファイル属性 または仮想属性のどちらに含めるかを決定できます。 file属性は、現在のディレクトリからの相対パスのファイル です。これは、 の絶対ファイルパス(/で始まる)にはできません。また、そのパスの一部として../を含めることもできません。 仮想属性がおそらくより有用であり、 は、提供される文書に関連するURLを指定する必要があります。 は/から始めることができますが、ファイルは と同じサーバー上にある必要があります。

このようなhome.shtml変更しよう:

<!--#include virtual="partials/components/newsletter.shtml"--> 

を...とnewsletter.shtmlファイルは、同様の方法で変更する必要があります。

+0

xamppの中にhtdocsの中にフォルダを置いたときに動作しました。私はそれを通常のディレクトリに置くと動作しません。私は理由を知りません.... –

+0

あなたはApacheのアクセスとエラーのログファイルを見てみましたか?場所が問題の場合は、不正なパスに関する情報が必要です。 –

関連する問題