こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPのないサーバーでの動的なページの作り方

こんにちわ。

現在、大学の研究室のホームページを作り替えています。
サーバーにはPHPが入っていないため、現在のホームページは1ページに対してhtmlファイルが1つずつある状況です。
私の作ったホームページ(example.jp/の中身)のディレクトリ構造は例えば以下のようになっています。

css/
js/
img/
home/
member/
news/
header.html
footer.html
menu.html

そして、home/, member/, news/の中にそれぞれindex.htmlとmain.htmlが入っていて、example.jp/home/index.htmlにアクセスするとそのindex.htmlの中でhome/main.htmlとheader.html, footer.html, menu.htmlがJavascriptによって読み込まれるようになっています。

このため、メニューやヘッダーを変更したい場合は1つのファイルの編集だけですみます。
しかし、このままではindex.htmlを編集したい場合、全ファイルを変更しなければなりません。

できればindex.htmlも1つにしたいのですが良い方法はないでしょうか?


説明が分かりにくいかもしれませんが、よろしくお願いします。

投稿日時 - 2013-12-13 16:22:42

QNo.8384792

困ってます

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

javascript・・・そんなことしません。
【引用】____________ここから
JavaScript、Cookie、セッション ID、フレーム、DHTML、Flash などの特殊な機能が使用されているためにサイトの一部がテキスト ブラウザで表示されない場合、検索エンジンのスパイダーがサイトをうまくクロールできない可能性があります。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[ウェブマスター向けガイドライン(品質に関するガイドライン) - ウェブマスター ツール ヘルプ( https://support.google.com/webmasters/answer/35769?hl=ja#2 )]より
 特に大学のように半ば公的なサイトは第一義に、広汎なWebアクセス性の考慮( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.4.2 )をします。

 共通なコンテンツを含む場合は、基本的には古くて枯れた技法ですが、SSIを使用します。HTMLファイ内に、
<!-- include sitemap.txt -->
と一行書いておけば、
<div class="nav">
 <ul>
  <li><a href="/">Top</a></li>
  <li><a href="/member">Top</a></li>
  <li><a href="/news">Top</a></li>
 </ul>
</div>
とだけ書かれたsitemap.txtが埋め込まれて提供される。
 他の部分も、すべてのリンクを/(ルート)から書く。
<img src="/images/photo/abc.jpg" width="420" height="360" alt="">
というふうに。これで、どの階層のファイルにコピーペーストしても機能する。

<!--#include virtual="/ssi/News.txt" -->
<!--#include virtual="/ssi/Note.txt" -->
<!--#include virtual="/ssi/Information.txt" -->
<!--#include virtual="/ssi/Copyright.txt" -->
<!--#include virtual="/ssi/Topic.txt" -->
とかね。

 また、index.htmlをCGIとして動作させても良いです。perlくらいは使えるでしょうから。
 その場合は、PATH_INFOを使うと良いです。
http://hoge.jp/member/chem/abc.html
 要求されたら、directory_indexで指定されているindex.html(ないしindex.cgi)が、/data/member/chem/abc.html を提供すればよいだけです。ユーザーにはhttp://hoge.jp/member/chem/abc.htmlとしか見えない。
 この方法の長所は、プログラムを組み込めますから細工ができる。

 SSIにしろCGIにしろ、index.htmlで動作するように設定しておくと完璧でしょう。
★javascriptは使用してはなりません。最悪です。どうしてもなら、ナビゲーションに支障がない範囲で・・

 

投稿日時 - 2013-12-14 12:46:21

お礼

回答有難うございます。

WEBプログラムの勉強はしていましたが、提示していただいたガイドラインのような内容に関しては手付かずでした。
今後勉強したいと思います。

SSIやCGIも検討してみます。

投稿日時 - 2013-12-17 23:52:23

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>No.1お礼
>ラッパーファイル

ラップというのは、「包み込む」という意味です。(サランラップ、クレラップなどの「ラップ」です)
ラッパーというのは何かを包み込んでいる物です。

>example.jp/home/index.htmlにアクセスするとそのindex.htmlの中でhome/main.htmlとheader.html, footer.html, menu.htmlがJavascriptによって読み込まれるようになっています。

このように、他のファイルを読み込んでいるファイルを、ラッパーと呼びます。

投稿日時 - 2013-12-18 11:16:12

ANo.1

index.htmlを違うファイル名にして、
そのファイルを読み込むラッパーファイルをindex.htmlという名前で作れば良いのではないでしょうか。

投稿日時 - 2013-12-13 20:04:29

お礼

回答ありがとうございます。また返事が遅くなり申し訳ありません。
ラッパーファイルというのを調べましたが、私にはよく分かりませんでした。

投稿日時 - 2013-12-17 23:38:55

あなたにオススメの質問