- ベストアンサー
SSI includeの使用について
- SSIのincludeについての質問になります。http://www.tatoeba.com/folder/などの違うフォルダの中にファイルから同一のメニューバーなどを読み出す場合、絶対パスでしか入力を受け付けないのか疑問です。
- 相対パスでの呼び出しでもうまく機能しているウェブサイトもあるため、自分ではどうすることもできません。
- 相対パスの場合、指定したファイルに遷移できない場合もあるため、絶対パスしかないのか疑問に思っています。詳しい方、この疑問について教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ということは、要求されていることは、異なる相対パス名を、ひとつのmenu.htmlの中で書きたいということですね。 ということは、menu.htmlとして静的なテキストを書くだけでは、その要求を満たすことはできません。 環境変数や、条件に応じた制御を行う構文を用いれば、可能だと思います。 http://tohoho.wakusei.ne.jp/wwwssi.htm#Echo http://tohoho.wakusei.ne.jp/wwwssi.htm#If ただ、相対パスをお使いになる理由は「サーバーへの負荷が軽くなるため」なのでしょうか。相対パスを使ったからといって、サーバの負担は軽くならないような気がするのですが。相対パスは、ブラウザ側で解決されて、HTTPリクエストをブラウザからサーバに投げる段階で既に絶対パスに変換されてますので。 また、サーバの負荷を軽くするためでしたら、SSIを使わないことを最も有効だと思われます。SSIは、その名の通り、サーバ側でincludeしますので、その処理をするための負荷がサーバにかかってしまいます。 参考になれば幸いです。
その他の回答 (3)
- elmclose
- ベストアンサー率31% (353/1104)
再度補足をお願いします。 (1) 下記5ファイルの関係はどうなっていますか? どのファイルから、SSIでどのファイルをincludeするのでしょうか? includeする/される関係を全て書いていただけますでしょうか? http://www.tatoeba.com/index.html http://www.tatoeba.com/folder/index.html http://www.tatoeba.com/folder/folder/index.html http://www.tatoeba.com/aboutus.html http://www.tatoeba.com/menu.html http://www.tatoeba.com/folder/sample.html (2) >http://www.tatoeba.com/folder/folder/index.html >このページに表示されているmenuは、 >http://www.tatoeba.com/menu.html とは、どういう意味でしょうか? http://www.tatoeba.com/folder/folder/index.html の中でフレームを切って、そのフレームの中のひとつで http://www.tatoeba.com/menu.html を表示させるという意味でしょうか? それとも他の意味でしょうか? (3) >http://www.tatoeba.com/folder/sample.html >というファイルをmenuから呼び出す場合には、 とは、どういう意味でしょうか? http://www.tatoeba.com/menu.html の中に、 http://www.tatoeba.com/folder/sample.html をincludeさせるという意味でしょうか? あるいは、他の意味でしょうか?
補足
1. http://www.tatoeba.com/menu.html このファイルのみがincludeされるファイルです。 200ピクセル程度のメニューバーだと思ってください。 2, その通りの意味となります。 メニューバーをそれぞれのフォルダから表示させることを目的としております。 3. includeされているmenu.htmlというファイルに、 sample.htmlへのリンクを貼るという意味です。 つまり3をご理解頂ければわかるかと思いますが、 それぞれ違うディレクトリからsample.htmlへのリンクを貼る場合は相対パスが異なってしまうのは十二分にご理解頂いているものと思います。 しかし、それぞれのディレクトリに同じメニューバーを挿入することによって、 ページ編集作業を容易にしたいと思っております。 絶対パスであれば 何の問題もないのですが、 相対パスにしたほうが サーバーへの負荷が軽くなるために、 出来る限り相対パスでの方法がないかどうか 模索したいと思っております。 以上よろしくお願い致します。
- elmclose
- ベストアンサー率31% (353/1104)
さらにお聞きします。 http://www.tatoeba.com/folder/index.html の中から、 http://www.tatoeba.com/aboutus.html を呼び出すときに、 「../aboutus.html」 と書いてますか? (「../」は親ディレクトリを表わします)
補足
何度もお返事有り難うございます。 申し訳ございません。 うまく伝えるのが非常に困難です(汗) 例えば、 http://www.tatoeba.com/folder/folder/index.html からトップページを相対パスにすると ../../index.html になるかと思いますが、 http://www.tatoeba.com/folder/folder/index.html このページに表示されているmenuは、 http://www.tatoeba.com/menu.html にあるため、 相対パスで../../index.html と指定すると問題になるかと思います。 他にも http://www.tatoeba.com/folder/sample.html というファイルをmenuから呼び出す場合には、 http://www.tatoeba.com/index.html からはfolder/sample.html と指定を、 http://www.tatoeba.com/folder/index.html からはsample.html と指定を、 http://www.tatoeba.com/folder/folder/index.html からは../sample.html と記載する必要性があるため、 同一のmenu.htmlでは対応が出来ず、 絶対パスでURLを記載しておくしか方法がないのではないか?ということとなります。 かなりややこしくて申し訳ございません。 どうぞよろしくお願い致します。
- elmclose
- ベストアンサー率31% (353/1104)
相対パスでいけるような気がしますが。 >http://www.tatoeba.com/index.html >を呼び出したいんですが、 >http://www.tatoeba.com/folder/index.html >にいってしまったりするので、 その場合、具体的に、どのようにincludeを指定しておられますか? あと、http://www.tatoeba.com/index.html って、 http://www.tatoeba.com/ の一番上の(トップの)ページですよね。それをincludeするって、何かちょっと変な感じがするのですが・・・
補足
すいません。うまく質問がかけてない様子です。 menuファイル http://www.tatoeba.com/menu.html を作ったとします。 そしてそのmenuファイルの中に、 http://www.tatoeba.com/aboutus.html というファイルへのリンクを 相対パスでaboutus.htmlと貼っておきます。 それを、 http://www.tatoeba.com/index.html http://www.tatoeba.com/folder/index.html などから呼び出します。 その場合、 http://www.tatoeba.com/folder/index.html からaboutus.htmlを呼び出すとすると、 相対パスでは http://www.tatoeba.com/folder/aboutus.html に飛んでしまい、 ページがうまく表示できない、というわけです。 絶対パスであれば、 問題なく飛ばすことが出来ます。 絶対パスと相対パスを理解していない、 完全な素人質問かもしれません。 よろしくお願い致します。
お礼
非常に参考になりました。 長い間、おつきあい頂きまして、 誠に有り難うございました。