[PR]tDl:loC士澎I

SSI入門?です(#include)
#include
ファイルの読み込み
<!--#include file="ファイル名" -->
<!--#include virtual="ファイル名" -->

他のファイルを読み込み、ページに挿入することができます。

file属性はカレントディレクトリのファイルに対してか、その下の階層にあるファイルに対して使用します。virtual属性はカレントディレクトリからの相対パスで、カレントディレクトリより上位のファイルを指定できます。


それでは「#include(1)」を見てください。

いかがでしたか。テーブルの中に
「今ご覧になっているものは・・・」
の表示がされていましたか。もしテーブルの中に何も表示されていないようでしたら、あなたが使われているブラウザはSSIに対応していないブラウザかもしれません。SSI対応の新しいブラウザに代えられることをお勧めします。


さて先ほどのページはどのようなHTMLになっていたでしょうか。
<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 にはどのように書かれているのでしょうか。

今ご覧になっているものは、ここには存在しません!<br>
でもお化けじゃないですよ。test01.txtという別のファイルなのです。このHTML(s_include1.shtml)が別のファイル(test01.txt)を呼び出しているのです。


MEMO:
呼び出されるファイルの中に、さらにSSIを入れたらどうなるでしょうか。
「#include(2)」を作ってみました。

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)」を見てください。

s_include3.shtml は、このように書かれています。
<!--#include file="./test/test11.txt" -->


【virtual属性】
しかし上の階層にあるファイルは file属性では扱えません。その必要があるときには virtual属性を使用します。SSIを呼び出すディレクトリから見た相対パスかホームディレクトリを基準にした絶対パスで指定します(このサイトでは絶対パスでは表示できませんでした)。

例えば一つ上の階層(../)の下にあるディレクトリ ybb(ybb/) にある test21.txt を呼び出すのであれば、下のように記述します。

<!--#include virtual="../ybb/test21.txt" -->
#include(4)」を見てください。


このように、たった一行のSSIの記述で、別のファイルを自由に挿入することができます。HTMLのヘッダやフッタの記述を別ファイルに書いておき、各ページからそのファイルをSSIで読み込ますこともできます。多くのページを管理するときには便利ですね。


ココのSSI入門?です(Top)
Copyright 2001-2002 Coco's Home. All rights reserved.

[PR]lvZ@ff:EllI