他のファイルを読み込み、ページに挿入することができます。
file属性はカレントディレクトリのファイルに対してか、その下の階層にあるファイルに対して使用します。virtual属性はカレントディレクトリからの相対パスで、カレントディレクトリより上位のファイルを指定できます。
それでは「#include(1)」を見てください。
いかがでしたか。テーブルの中に
「今ご覧になっているものは・・・」
の表示がされていましたか。もしテーブルの中に何も表示されていないようでしたら、あなたが使われているブラウザはSSIに対応していないブラウザかもしれません。SSI対応の新しいブラウザに代えられることをお勧めします。
<html> <head> <title>Coco's Home (SSI入門?です−#include)</title> <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp"> <link rel="stylesheet" type="text/css" href="./cocossistyle.css"> </head> <body> <center> <H2>#include(1)</H2> <hr> <table border="8" bgcolor="#44BBBB" width="500"><tr><td> <!--#include file="./test01.txt" --> </td></tr></table> <!--#include file="./fotter.txt" -->HTML文書の中に、赤字で表示されている行を書き込んでいるだけです。
<!--#include file="./test01.txt" -->
test01.txt という名前のファイルを読み込むように書いてあります。それでは test01.txt にはどのように書かれているのでしょうか。
test02.shtmlの文書の中に、さらに呼び出されたファイル(test01.txt)が表示されるはずでしたが、表示されませんでした。私の環境、Windows98の AN HTTPD 下では表示できましたが、サイトに送ると表示はできませんでした。公開するときには自宅の環境でテストをし、さらに本番でもチェックする必要がありますね。
<!--#include file="./fotter.txt" -->
fotter.txt という名前のファイルは、このように書かれています。
<hr> <a href="Javascript:history.back()">Back</a> <hr> <font size="1">Copyright 2001-2002 Coco's Home. All rights reserved.</font> </center> </body> </html>
フッター部分をこのように書いてみました。他の SHTML ファイルのフッター部分にも同じ記述がしてあります。このようにすれば、フッターを修正するときには fotter.txt だけを修正すれば、同じ記述の SHTML ファイルも、一辺に修正できることになります。
【file属性】
先ほどの例では <!--#include file="ファイル名" --> でファイルを挿入して表示することができました。しかし file属性では、SSIを記述したディレクトリと同じディレクトリ(カレントディレクトリ)か、その下の階層に呼び出されるファイルがなければいけません。
下は /cocohome/ssi/ のディレクトリにある s_include3.shtml というSHTMLファイルから /cocohome/ssi/test/ にある test11.txt を呼び出しています。
「#include(3)」を見てください。
<!--#include file="./test/test11.txt" -->
【virtual属性】
しかし上の階層にあるファイルは file属性では扱えません。その必要があるときには virtual属性を使用します。SSIを呼び出すディレクトリから見た相対パスかホームディレクトリを基準にした絶対パスで指定します(このサイトでは絶対パスでは表示できませんでした)。
例えば一つ上の階層(../)の下にあるディレクトリ ybb(ybb/) にある test21.txt を呼び出すのであれば、下のように記述します。
<!--#include virtual="../ybb/test21.txt" -->「#include(4)」を見てください。
このように、たった一行のSSIの記述で、別のファイルを自由に挿入することができます。HTMLのヘッダやフッタの記述を別ファイルに書いておき、各ページからそのファイルをSSIで読み込ますこともできます。多くのページを管理するときには便利ですね。