• ベストアンサー

ssiで置き換えた部分の先頭に余分な空行が表示されます

既存のhtmlの一部(以下のbbb.html)を次のように、ssiで置き換えたところ、 ブラウザ画面の該当部分の先頭に余分な空行が表示されます。 <!--#include virtual="/aaa/bbb.html" --> ソースには、<br>その他の余分なタグは含まれていません。 サーバ、ブラウザ、htmlの何れに問題があるのか、 切り分け方を教えて下さい。 よろしくお願い致します。

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.6

Fedora 7 Apache で確認してみました。 結論は、改行コードが2つはいっていました。     0a 0a これをおそらくIE 7以前のブラウザが空行にしているのでしょう。 (IE7では、現れないようでした。) telnetの使い方を簡単に示します。 ----------------------------------------------- #telnet localhost 80 > tt.txt GET /filename.shtml http/1.0 ・真上の空行は必要です.(Enterキー) ・GETは大文字 これで「tt.txt」ができます。 #hexdump -C tt.txt これで、16進ダンプが見れます。 00000120 3e 0a 58 58 58 0a 41 41 41 0a 30 30 30 0a 0a 42 |>.XXX.AAA.000..B|

その他の回答 (5)

回答No.5

あ、行頭のスペースじゃなくて、一行余分に追加されてるってことでしたか。 どんなHTMLになってるのかわかりませんが、そう見えるだけなら、デフォルトスタイルシートとかじゃないですか? とりあえず、スタイルシートで *{margin:0;padding:0;line-height:100%;} などを指定してみてはいかがでしょうか。

回答No.4

> 「SSIの結果としてどういうhtmlがブラウザに返ってきているのか」 ブラウザでアクセスしてソースを表示してください。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

「ブラウザで表示が違う」ということになれば、SSIの結果としてどういうhtmlがブラウザに返ってきているのかを確認されたほうがいいと思います。その「空行がないハズのhtml」のソースを提示されれば何かわかるかもしれません。

tfj3116
質問者

補足

ありがとうございます。 大変お手数をかけ恐縮です。 サーバ情報は、以下の通りです。 FreeBSD 6.1 Apache/1.3.39 「SSIの結果としてどういうhtmlがブラウザに返ってきているのか」 を確認する方法については、経験がないため、これからネットで調べてトライしようと思います。 もし、実績があり、自分でもできそうな手順(が掲載されたサイト)がありましたら、教えて頂けませんでしょうか。 「オンブにダッコ」で大変恐縮です。 よろしくお願い致します。

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ お使いのサーバは、IISでしょうか。   Apacheでは、その症状を確認できませんでした。 ・ サーバの出力をチェックするには、telnetを使う方法もあるかと思います。(tera Term等)

tfj3116
質問者

お礼

せっかく教えて頂いたにもかかわらず、 返信・お礼がたいへん遅れてしまい申し訳ありません。 本件は、サーバの応答とブラウザの個性にも関連性があるため、 スタイルシートで表示を調節することとし、 追って立案する予定です。 したがって、一旦質問を締め切る手続きをさせて頂きます。 たいへんありがとうございました。

回答No.1

bbb.htmlの内容がこういうので ----------- <br> ----------- <br>の後ろ、ファイルの最後に改行がある場合、SSIで取り込むと、その改行コードも取り込まれます。 ブラウザによっては、その改行コードが半角スペースに変換されて、スペースとして表示されます。 一応、この動作はHTMLの文法として正しいのですが、表示上、あまり良くないので、インライン要素の中では改行コードは使わないようにした方が良いと思います。 (bbb.htmlのファイルの最後にある改行コードを消す) ご参考に、これを比べてみて下さい。 <p>aaa<br>bbb</p> <p>aaa<br> bbb</p> 以下余談です。すでにされていたら無視して下さい。 .htmlという拡張子でSSIを実行するように設定している場合、 インクルードするファイルも.htmlとなっていると、そのファイルもSSIを実行します。 CSSの@importのように、共通部分を分割することも出来ますので便利ですが、 SSIコマンドが書かれていないファイルをインクルードする場合は、 .txtなど、SSIが実行されない拡張子にしておくと、サーバーの負荷を軽減出来ます。

tfj3116
質問者

お礼

早々と教えて頂き、ありがとうございます。 さっそく確認したところ、 bbb.htmlには、タグ<br>が含まれていませんでした。 そこで、bbb.html内にある全てのコメント、改行コードを 削除して試しましたが、症状は改善されませんでした。 ブラウザとしてIEに代わるmozilla firefoxで確認したところ、 症状は出ませんでした。 しかし、ブラウザnetscape,operaでは、IEと同様の症状を 確認することができました。 ブラウザにも問題があるように思われるのですが、 まだ対処の余地がありましたら、どうか教えて頂きたく、 よろしくお願い致します。

関連するQ&A

専門家に質問してみよう