ASP 講義シリーズ (14) ファイルが含まれています
著者:Eve Cole
更新時間:2009-05-30 19:58:52
SSI ディレクティブは、Web サーバーによる処理の前に、あるファイルの内容を別のファイルに挿入する方法をユーザーに提供します。 ASP は、このメカニズムに #include ディレクティブのみを使用します。ファイルを .asp ファイルに挿入するには、次の構文を使用します。
<!--#include 仮想ファイル ="ファイル名" -->
virtual および file キーワードは、ファイルを含めるのに使用されるパスのタイプを示し、filename は含めるファイルのパスと名前です。
インクルードされるファイルには特定のファイル拡張子は必要ありませんが、他の種類のファイルと区別するために、インクルードされるファイルに .inc 拡張子を付けることをお勧めします。
Virtual キーワードの使用 Virtual キーワードを使用して、パスが仮想ディレクトリで始まることを示します。たとえば、Footer.inc という名前のファイルが /Myapp という仮想ディレクトリに属している場合、次の行は Footer.inc の内容をその行を含むファイルに挿入します。
<!--#include virtual ="/myapp/footer.inc"-->
File キーワードの使用 file キーワードを使用して、相対パスの使用を示します。相対パスは、インクルード ファイルを含むディレクトリから始まります。たとえば、ファイルが Myapp ディレクトリにあり、ファイル Header1.inc が MyappHeaders にある場合、次の行は Header1.inc をファイルに挿入します。
<!--#include ファイル ="headers/header1.inc"-->
インクルードされるファイル Headers/header1.inc へのパスは、インクルードされるファイルに対する相対パスであることに注意してください。#include ステートメントを含むスクリプトが /Myapp ディレクトリにない場合、ステートメントは効果がありません。
インターネット サービス マネージャーで [上位ディレクトリを有効にする] オプションが選択されている場合は、file キーワードと ../ 構文を使用して、親ディレクトリ、つまり上位ディレクトリにファイルを含めることもできます。
含まれるファイルの場所 含まれるファイルは、Web サイト内のディレクトリまたは Web サイトの外部のディレクトリに存在できます。通常、インクルードされたファイルは Web サイトのディレクトリに配置されている必要があります。インクルード ファイルが Web サイト内にある場合、次回ブラウザがインクルード ファイルを要求したときに、インクルード ファイルへの変更が表示されます。ただし、組み込まれたファイルが Web サイトの外部にある場合、ASP アプリケーションが再起動されるか、Web サーバーが再起動されるまで変更は反映されません。 ASP は、アプリケーションの名前空間 (アプリケーションのホーム ディレクトリの下) に含まれるファイルへの変更を検出します。
含まれるファイル: ヒントと警告 含まれるファイルには、他のファイルも含めることができます。 #include ディレクティブによってループが発生しない場合は、.asp ファイルに同じファイルを複数回インクルードできます。たとえば、First.asp ファイルに Second.inc ファイルが含まれている場合、Second.inc に First.asp を含めることはできません。ファイルにはそれ自体を含めることはできません。 ASP は、このようなループ エラーやネストされたエラーを検出し、検出されるとエラー メッセージを生成し、要求された .asp ファイルの処理を停止します。
ASP は、スクリプト コマンドを実行する前にファイルをインクルードします。したがって、スクリプト コマンドを使用して、インクルードされるファイルの名前を作成することはできません。たとえば、次のスクリプトは Header1.inc を開きません。これは、ASP がファイル名を変数名に割り当てる前に #include ディレクティブを実行するためです。
<!-- このスクリプトは失敗します -->
<% name=(header1 & ".inc") %>
<!--#include file="<%= name %>"-->
スクリプト コマンドとプロシージャは、スクリプト区切り文字 <% と %>、HTML タグ <SCRIPT> と </SCRIPT>、または HTML タグ <OBJECT> と </OBJECT> で完全に囲む必要があります。つまり、.asp インクルード ファイルでスクリプト区切り文字を開いてから、インクルード ファイルでそれを閉じることはできません。スクリプトまたはスクリプト コマンドは完全な単位である必要があります。たとえば、次のスクリプトは実行されません。
<!-- このスクリプトは失敗します -->
<%
i = 1 To n の場合
メインファイル内のステートメント
<!--#include file="header1.inc" -->
次
%>
次のスクリプトは正常に実行されます。
<%
i = 1 ~ n の場合
メインファイル内のステートメント
%>
<!--#include file="header1.inc" -->
<% 次へ %>