• ベストアンサー

HTMLでソースを共通化する

HTMLでのWEBページ作成で、「共通モジュール」のような考え方で ソースを共通化したいと考えています。 どのようにすればよいのでしょうか? ヘッダ部やフッタ部・サイドメニューのようなもの等を 各ページで同じ物を表示したいのです。 ご指導をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • JoanOfArc
  • ベストアンサー率100% (1/1)
回答No.7

SSIが使えるのでしたら、SSIでincludeするのがベストです。 <!--#include file="~"--> <!--#include virtual="~"--> みたいな感じですね。SSIがだめでPHPが使えるのでしたら、 PHPでincludeできます。 <?php include "~"; ?> もしサーバのrootがあるのでしたら、mod_layoutを使うという 方法もあるのですが、これはちょっと微妙な気がします。 CGIで挿入するという方法は、機能の割に負荷が高いので お勧めできません。

taku_pan
質問者

お礼

ありがとうございます。 SSIにて実現することにしました。

その他の回答 (7)

  • you-m
  • ベストアンサー率58% (190/327)
回答No.8

そもそも、HTMLは構造化文書の表現方法であるため、システム的な共通化の考え方等を実現する枠組みが存在しません。 ちょっと前に似たような質問について、回答しています。 http://okweb.jp/kotaeru.php3?q=1471916 個人的には、SSIやCGIを使った方法は、サーバの環境に依存する為、コンテンツとしての汎用性に欠けます。 やはり、こういった場合は予め作成したヘッダやフッタと本文の部分を結合したHTMLを吐き出すようなプログラムを作成するのが一番いいかと思います。 少なくとも管理する側からは、共通モジュール化して管理できるし、一旦フィルタ処理したデータは、単なるHTMLである為、どこへでも持っていけます。

taku_pan
質問者

お礼

ありがとうございます。 SSIにて実現することにしました。

  • equation
  • ベストアンサー率38% (10/26)
回答No.6

MacromediaのDreamwaver(スペル違うかも)だったらテンプレート機能のようなもので一括変更できるらしいですよ。

taku_pan
質問者

お礼

ありがとうございます。 SSIにて実現することにしました。

  • grape16
  • ベストアンサー率55% (52/93)
回答No.5

<iframe>を使う手もありますね。 もしMicrosoft FrontPageをお使いなら「ページ挿入」や「共有枠」の機能が利用できます。

taku_pan
質問者

お礼

ありがとうございます。 下でiframeについて、これなら要求を満たすことができるかもしれないと書いたのですが、 少し違うような気もしてきました。ほとんどフレームの考え方ですね。 使いようだと思いますが、今回はiframe以外で考えたいと思います。 (使い方は分かりました)

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.4

Web屋です。 HTMLには、ファイルをインクルードする。と言う概念がありません。 そのため、HTMLの部品化はできません。 僕が作ったCGIで、HTMLファイルを再帰的にインクルードし、最終的にHTMLとして表示したり、ファイルに保存する。と言う物があります。 この仕組みの場合、共通部品として利用したHTMLをインクルードファイルとして用意(と、言っても普通のHTMLファイルですが。)して置いて、親の階層で<!-- @include xxxx.html --> で呼び出す事で取り込まれる。と言う事をやっています。 また、PHPを使ってインクルードする。と言う方法を推奨している人も居ますね。 この考え方は、XOOPSなどでも利用されています。Movable Typeでも採用されていますが、完全とは言い切れないですね。 純然たるHTMLだけでは無理があるので、PerlやPHPを利用して、必要に応じてページを再構築する。と言う作業を伴うか、CGIでリアルタイムにインクルードして表示する様にするか。 だと思います。

taku_pan
質問者

お礼

ありがとうございます。 意識してインクルードさせるような仕組みにしないといけない、ということですね。 でもすみません。あまり理解していないかもしれません。 SSIを用いるということでしょうか?

noname#40524
noname#40524
回答No.3

それに近いことはスタイルシート(CSS)で出来ます。 XXX.jsファイルで設定されてます。 それからインラインフレームを使用して、メニュー以外だけを 変更する事も出来ます。 ↑これは実際に使用しています。

taku_pan
質問者

お礼

ありがとうございます。 cssだと書式部分のみが共通化できるということでしょうか?もっと広く活用できるのでしょうか? インラインフレームですか。なるほど。 まだ使ったことないですが、これなら要求を満たすことができるかもしれません。 (回答を見てちょっと調べただけなので、よく分からないですが。) もし使用例や参考ページ、使用上の注意などありましたら、補足頂けるとうれしいです。

  • otu_otu
  • ベストアンサー率31% (17/54)
回答No.2

その気持ちわかります。。フッタ等を別ファイルにしておければ、メンテナンスが容易ですよね。。 将来的にはXMLでWebサイトを作るようになれば、対応できるのではないでしょうか。。(憶測ですが...)

taku_pan
質問者

お礼

ありがとうございます。 >フッタ等を別ファイルにしておければ、メンテナンスが容易ですよね。。 そういうことなのです。 (ヘッダ/フッタ以外にも共通で表示させたいものがあるのですが、  全ページを毎回更新するなんてイヤなのです) 現状ではできないのでしょうか?

noname#15285
noname#15285
回答No.1

基本になるものを作っておいて後は変更の度に名前を変えるだけでいいと思います。 違う意味ならごめんなさい。

taku_pan
質問者

お礼

たぶん意味が違うと思います。 別の箇所で同じロジックを呼び出したいのです。 単なるコピペならできます。