
SSIで簡単サイト構築・管理
SSIとは、Server Side Include の略。
簡単に言えば、Webサーバーがhtmlに文字を挿入してからブラウザへデータを送るってやつだ。これを使えば可能性がぐっとあがるよ。
|
 |
では、最も頻繁に使う SSI 利用方法を説明する。
書式は、使いたいところに <!--#include virtual="ファイルのパス" --> と書くだけだ。
例: <!--#include virtual="../../head.shtml" -->
0.はじめに、フレームとの使い分けヒント。
まず覚えておきたいことは、大抵のサーバーはSSIを使うにはファイルの拡張子をhtmlではなくshtmlにする必要があるということ。
たとえば、index.html を index.shtml にする必要がある。
サイトを作ったことがある人には、フレームを使えば?と思う人もいるだろう。
では逆に質問しよう。 何故フレーム?
結論から言おう。 フレームの方がレイアウト上都合が良い場合はフレームを使おう。 そういうレイアウトだってある。
ただ、大抵の場合はフレームを使う必要がない。 そして、最新のHTML規格ではフレーム機能は削除されている。
『フレームは使うべきでは無い』という結果である。
でも実際は、フレームが有効なデザインも存在するので、別の特殊規格として用意された。
フレームを使うデメリットを上げよう
・レイアウト/デザインの自由度が低い。
・検索エンジンから訪れる人は、フレーム表示れずにフレームの中のページが表示される。(メニュー部が表示されない等)
・同時にスクロールできない。フレームごと別々にスクロールさせる面倒な手間が発生。情報表示領域が狭くなる。(狭い画面で見ている人には致命的だ)
・ブラウザの中に複数のスクロールバーが出る。
フレームで構成する場合、以上の事を踏まえて行えば、フレームでも良いサイトができるだろう。
では、フレームを使った場合のメリットをあげよう。
・SSI が使えないサーバーに有効。
・ページの一部を固定表示できる。デメリットをメリットとして活用は、 フレームならではのデザインである。
ホームページ作成初心者がよく行うのが、何も考えずにフレームでメニューとコンテンツ内容左右にを分けるやりかただ。
何も考えていないとは、レイアウトも考えていなく、デメリットしか存在しないわけだ。
使うならば、デメリットを克服し、メリットとして使用するようにしよう。
フレームを使う上での、最低限守ったほうが良い事をピックアップする。
・全フレーム内にトップページへ戻るリンクを設置するように。(画像(レイアウト専用)だけのフレームを除く)
・メニュー部のスクロールバーを消してはならない。
こんなことする人いないと思う人もいるだろうが、たまに見かける。スクロールバーが出てこないからメニュー下のほうが見えない。最悪である。 こういうサイトに限って縦1024以上の画面でブラウザをフルスクリーンにしないと見られないのだ。
ちなみに私は縦960なので、見れるわけが無い。
1.txtファイル埋め込み
10ページ以上になるホームページならば、普通はこの方法を導入してサイトを作るだろう。
例えば、トップページ index.shtml にアクセスするとする。
index.shtmlの中には、SSI として、head.txt と foot.txt を埋め込むように記述してある。
するとサーバーは、index.shtml にその2つのファイルを指定の個所に埋め込んでから、クライアントへ送信する。
クライアントは、この3つのファイルが一つになったデータしか受け取れないので、head.txtとfoot.txtの存在を知ることは無い。
これを行うメリットはこうだ。
複数コンテンツがある場合、大抵は共通するレイアウト部分が存在するだろう。
たとえば、ページの一番下に表示するコピーライト。
これをいちいち全てのページに書くのは面倒だろう。 しかもそこを少し修正するために全ページを書き換えないとならない。
こんな面倒なことはやっていられないだろう?
ここで便利な SSI が登場するわけだ。
コピーライトの記述部分を別ファイル、foot.txt
に書いておこう。
そして、SSI でそれを各ページに埋め込むようにするのだ。
1つのファイル foot..txt を書き換えるだけで全ページが変るのだ。
ちなみに当サイトでは、全ページが最低3ファイルで構成されている。*.shtmlと、head.shtml、foot.shtmlだ。
何故*.txt でなく *.html なのかは次の項目で説明しよう。
2. shtml埋め込み
前回は *.txt を埋め込む説明をした。
そして今回は、その応用として *.shtml を埋め込むという方法を説明しよう。
もうお分かりだと思うが、SSI を入れ子にするということだ。
例: index.shtml head.shtml abc.txt と3ファイルがあるとする。
head.shtmlにabc.txtを埋め込む、index.shtmlにそのデータを埋め込む。
こういった荒業も可能というわけだ。
これだけだと、何の意味があるの?という状態だろうから、最もよく使われる方法を紹介しよう。
全ページに SSI で head.shtml を埋め込み、その部分にカウンターも表示させたい。
そう、head.shtml の中に SSI でカウンターを入れられるのだ。
こういったことを考え、今は必要なくても *.txt ではなく、 *.shtml にしておいたほうがいいだろう。
*この場合拡張子は都合上shtmlとなるが、中身はhtml文章ではなくてただのtxtにすること。
すなわち、<head>や<body>といった、html文書内に一つしか存在してはならない要素を書いてはならない。
|