- ベストアンサー
HTMLでソースを共通化する
HTMLでのWEBページ作成で、「共通モジュール」のような考え方で ソースを共通化したいと考えています。 どのようにすればよいのでしょうか? ヘッダ部やフッタ部・サイドメニューのようなもの等を 各ページで同じ物を表示したいのです。 ご指導をお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
SSIが使えるのでしたら、SSIでincludeするのがベストです。 <!--#include file="~"--> <!--#include virtual="~"--> みたいな感じですね。SSIがだめでPHPが使えるのでしたら、 PHPでincludeできます。 <?php include "~"; ?> もしサーバのrootがあるのでしたら、mod_layoutを使うという 方法もあるのですが、これはちょっと微妙な気がします。 CGIで挿入するという方法は、機能の割に負荷が高いので お勧めできません。
その他の回答 (7)
- you-m
- ベストアンサー率58% (190/327)
そもそも、HTMLは構造化文書の表現方法であるため、システム的な共通化の考え方等を実現する枠組みが存在しません。 ちょっと前に似たような質問について、回答しています。 http://okweb.jp/kotaeru.php3?q=1471916 個人的には、SSIやCGIを使った方法は、サーバの環境に依存する為、コンテンツとしての汎用性に欠けます。 やはり、こういった場合は予め作成したヘッダやフッタと本文の部分を結合したHTMLを吐き出すようなプログラムを作成するのが一番いいかと思います。 少なくとも管理する側からは、共通モジュール化して管理できるし、一旦フィルタ処理したデータは、単なるHTMLである為、どこへでも持っていけます。
お礼
ありがとうございます。 SSIにて実現することにしました。
- equation
- ベストアンサー率38% (10/26)
MacromediaのDreamwaver(スペル違うかも)だったらテンプレート機能のようなもので一括変更できるらしいですよ。
お礼
ありがとうございます。 SSIにて実現することにしました。
- grape16
- ベストアンサー率55% (52/93)
<iframe>を使う手もありますね。 もしMicrosoft FrontPageをお使いなら「ページ挿入」や「共有枠」の機能が利用できます。
お礼
ありがとうございます。 下でiframeについて、これなら要求を満たすことができるかもしれないと書いたのですが、 少し違うような気もしてきました。ほとんどフレームの考え方ですね。 使いようだと思いますが、今回はiframe以外で考えたいと思います。 (使い方は分かりました)
- Dpop
- ベストアンサー率51% (279/544)
Web屋です。 HTMLには、ファイルをインクルードする。と言う概念がありません。 そのため、HTMLの部品化はできません。 僕が作ったCGIで、HTMLファイルを再帰的にインクルードし、最終的にHTMLとして表示したり、ファイルに保存する。と言う物があります。 この仕組みの場合、共通部品として利用したHTMLをインクルードファイルとして用意(と、言っても普通のHTMLファイルですが。)して置いて、親の階層で<!-- @include xxxx.html --> で呼び出す事で取り込まれる。と言う事をやっています。 また、PHPを使ってインクルードする。と言う方法を推奨している人も居ますね。 この考え方は、XOOPSなどでも利用されています。Movable Typeでも採用されていますが、完全とは言い切れないですね。 純然たるHTMLだけでは無理があるので、PerlやPHPを利用して、必要に応じてページを再構築する。と言う作業を伴うか、CGIでリアルタイムにインクルードして表示する様にするか。 だと思います。
お礼
ありがとうございます。 意識してインクルードさせるような仕組みにしないといけない、ということですね。 でもすみません。あまり理解していないかもしれません。 SSIを用いるということでしょうか?
それに近いことはスタイルシート(CSS)で出来ます。 XXX.jsファイルで設定されてます。 それからインラインフレームを使用して、メニュー以外だけを 変更する事も出来ます。 ↑これは実際に使用しています。
お礼
ありがとうございます。 cssだと書式部分のみが共通化できるということでしょうか?もっと広く活用できるのでしょうか? インラインフレームですか。なるほど。 まだ使ったことないですが、これなら要求を満たすことができるかもしれません。 (回答を見てちょっと調べただけなので、よく分からないですが。) もし使用例や参考ページ、使用上の注意などありましたら、補足頂けるとうれしいです。
- otu_otu
- ベストアンサー率31% (17/54)
その気持ちわかります。。フッタ等を別ファイルにしておければ、メンテナンスが容易ですよね。。 将来的にはXMLでWebサイトを作るようになれば、対応できるのではないでしょうか。。(憶測ですが...)
お礼
ありがとうございます。 >フッタ等を別ファイルにしておければ、メンテナンスが容易ですよね。。 そういうことなのです。 (ヘッダ/フッタ以外にも共通で表示させたいものがあるのですが、 全ページを毎回更新するなんてイヤなのです) 現状ではできないのでしょうか?
基本になるものを作っておいて後は変更の度に名前を変えるだけでいいと思います。 違う意味ならごめんなさい。
お礼
たぶん意味が違うと思います。 別の箇所で同じロジックを呼び出したいのです。 単なるコピペならできます。
お礼
ありがとうございます。 SSIにて実現することにしました。