2002/08/05 (月)
●メニューの別ファイル化 WebPageをつくっている方ならわかると思いますが、閲覧者には快適な環境で、思うままにサイト内を移動していただきたいもの。
このサイトでも、ホームページ(トップページ)以外に検索エンジンなどで来られた方がホームページに行きにくいと考えましたので、Contentsの部分にHomeのリンクをつけてみました。
しかし、このようにメインのナビゲーション用のリンクを変更すると、すべてのページで同じことをやらなければならなくなって、非常に面倒です。たとえば、僕はこのHomeのリンクをつけるためにトップページ(のテンプレート)、colums.shtml,concepts.shtml,links.shtmlの4つなど(実は他にも日記の格納庫があるのでそちらのテンプレートも本当は変えなければならないが変えてない・・・)を変更しなければならないのです。
そこで、ナビゲーション用の(Home/BBS/革命講座/Concepts/Links/Mail)の部分だけでも、「外部に一つのファイル」にして集中管理できたらいいのにな、と考えました。そうすれば、変更するときはそのファイルだけ書き換えればいいですよね。で、表示するときはどのページでもそのファイルを読み込むようにすればよいかと。
もちろん、フレームで区切れば簡単です。しかし、僕のポリシーとして「フレームは使わない」ことに決めているのです。なぜって・・・サイトの管理がしにくくなるし、検索エンジンにも拾われにくくなります。まあ、趣味の問題かもしれませんが。
では、どうすればいいのか。
すこしHTMLに詳しい方なら、IFRAMEを使えばいいじゃないの?と言われるでしょう。しかし、このサイトにはNN4.7でアクセスしてくる方が数%いらっしゃるわけで、IFRAMEに対応していない方がいらっしゃる以上、そういうわけにも行きません。それにフレームの一種ともいえますし。
そこで、CGIを使うのはどうだろうとおもったのです。具体的には、最初にPerlで外部にメニュー表示プログラムを書いて、SSIにより、読み込ませたらどうだろうと考えたのです。 ところが、うまくいきません。なぜなら、左側のReports...の下の日記のリンクをクリックするとCGIで自動生成したhtml(拡張子は.cgi)が表示されるのですが、この中ではSSIが働きません。CGIの中ではCGIを呼び出すことができないのです。カウンターも表示されないと同様に、リンク部分もなくなってしまうのです。 問題があるのは、過去の日記の部分だけですが、美しくありません。
では、PHPではどうだろうか。外部のテキストファイルを読み込ませるようにすれば、楽々ではないだろうか。そう考えたのです。 しかしながら、それは甘いと言うものです。なぜなら、トップページの拡張子を.shtmlから.phpに変える必要がでてきますから、トップページにふくまれるSSIのカウンタが作動しなくなってしまうのです。SSIが動くにはshtmlの拡張子が必要だからです。 これもカウンタの動作原理をSSIから変更する必要がでてきてしまい、面倒です(もっとも、できないことはないのですが)。
・・・今のところ、Javascriptだけで外部のファイルを読み込んで、それを表示するという方法が良さそうな気がしているのですが、それも実現できるのかよくわかりません。なんだか考えるのが面倒になってきたのです。
どなたか、よい方法を教えていただけないでしょうか。 問題は 1.SSIとPHPを同時に実行できないか。 2.IFRAMEに変わるHTMLレベルでの別ファイル読み込み方法(Javascriptでもよいです)。 このどちらかを解決できればいいだけなのです。
だめかなぁ・・・って、専門の掲示板へでも投稿した方がいいですな。少し探してみます。おすすめなどあれば教えてください。 というか、普通はそういう問題をどう解決しているのでしょうか?
|