• ベストアンサー

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

  • DreamWeaverでSSIをつかったのですが、ブラウザで表示されません。

    インクルードするファイルには <!--#include file="ssi/header.html" --> を挿入してあり、Dreamweaverのデザインでは きちんと表示がされております。 それをサーバーへアップしてもブラウザ上では表示されません。 もちろん、header.htmlはサーバーへアップしてありますし インクルードのタグを書いているページはshtmlです。 サーバーもSSIは対応しています。 いろいろな過去ログを参照したのですがいまいち原因がわかりません。 階層が間違っているのかと思い、 <!--#include virtual="ssi/header.html" --> でもしてみましたが、やはり表示されませんでした。 ちなみに、ブラウザで表示されるもののソースをみると <!--#include file="ssi/header.html" -->の記述が残ってあります。 通常、上記のようなインクルードされたものは記述がなくなるはずなのですが、なぜか表示されております。 .htaccessなるものですればよいのか どうやってすればよいのかが全然わからず困っております。 どうか、ご教授下さいませ。

    • ベストアンサー
    • HTML
  • ssi がうまく動作しません。

    サーバ会社に訪ねると.htaccessに AddType text/html shtml を記入して下さいとのことでした。 以下の方法でためしましたが、エラーがでるわけでもなく、<!--#INCLUDE VIRTUAL="/ssi/xxx.shtml"--> にした部分だけが表示されません。 http://aaa.com/bbb/ccc/ddd.html .htaccess は、bbbのファイル内におきました。 1, ssi/xxx.shtml は、indexと同じトップの階層におきました。 ddd.html に  <!!--#INCLUDE VIRTUAL="/ssi/xxx.shtml"--> を記入しました。 2, ssi/xxx.shtml は、bbbのファイル内において、ddd.html に <!--#INCLUDE FILE="/ssi/xxx.shtml"--> を記入してみましたが、これもだめでした。 パーミッションも何がいいのか、お分かりでしたらお願い致します。 ちなみに777にして試したのですが、だめでした。

    • ベストアンサー
    • CSS
  • CGIにSSIカウンタをつけたい

    掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。 表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。 HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。 SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。 CGIは「掲示板や日記帳など」と言いましたが、まだ検討段階で特定のCGIはなく、色々なCGIで試しています。 ※特定のものだけではなく、テキストカウンタを表示したいと思うCGIにつけたいのです。 CGIの記述は (1) print "<!--#include virtual=\"仮想パス\"-->\n" ; (2) print '<!--#include virtual="仮想パス"-->\n' ; (3) print "<!--#include virtual='仮想パス'-->\n" ; (4) print <<"EOM"; <!--#include virtual="仮想パス"--> EOM と4通り試しましたが、どれも動作しませんでした。 SSIのテキストカウンタのパスが「http://xxx.yyy.zzz/aaa/bbb/ccc/txtdayc1.cgi」だとしたら、仮想パスは「/aaa/bbb/ccc/txtdayc1.cgi」のようなので、そう記述しましたが動作しませんでした。 CGIと同じディレクトリに置いているので、記述を「<!--#include virtual="./txtdayc1.cgi"-->」に変えたところ、HTMLファイルでは動作しました。 なぜSSIのテキストカウンタがCGIで表示されないのか、アドバイスをお願いできないでしょうか? また、「<!--#include virtual="仮想パス"-->」を「<!--#include virtual="CGIファイル名"-->」または「<!--#include virtual="フルパス"-->」のように記述しても問題ないのかも教えて頂けると助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • SSIの表示確認について

    ホームページのheaderとfooterを共通のSSIで表示しようと設定、 サーバーにアップロードしブラウザで確認したところ無事に表示はされるのですが・・・ 20ピクセル(見た感じ)ほど下方向にずれて表示します。 (SSIを使用しない場合は設定どおり表示されます。) HTMLファイル <!-- /headerエリア --> <div><!--#include virtual="/ssi/header.html" --></div>  省略 <!-- /footerエリア --> <div><!--#include virtual="/ssi/footer.html" --></div> HTMLではheader、footerエリアのmargin、paddingとも上は0としています。 また、includeさせる部分も<div>~</div>内を抜き出しssiディレクトリにheader.html、 footer.htmlのファイル名で保存されています。 .htaccessファイル Options +Includes AddHandler server-parsed html なぜ下方向にずれて表示されるのか、解決できません。 ぜひとも、ご教授お願いします。

  • SSI

    SSIを使用してHTMLファイルをインクルードする場合は、それぞれのHTMLファイルに宣言部分とか<head>~</head>は書くべきですかね? 書いた場合は、ブラウザからソースを見ると、宣言がいっぱいあったりしておかしな感じに・・・。 インクルードするファイルが、HTML~XHTMLなど様々であるならば、それぞれに宣言が必要な気はします。 ただ、インクルード前提でHTMLファイルが作られている場合は、宣言とかを書かずにいきなり<body>~</body>とかでもいい気がします。 そうすると、普通のソースみたいになりますし。 SSIってサーバ側で処理するものだから、ソースがサーバで生成されて、それがブラウザに送られるのかな? そうだとしたら、宣言はそれぞれにある必要はないですよね。 どうなんでしょうか?

    • ベストアンサー
    • HTML
  • IISのSSIの設定について

    SSIについてここで質問していいのか分からなかったんですが、 SSIが見当たらなかったのでここで質問させていただきます。 現在ローカルでSSIの表示テストを行っています。SSIの設定はデフォルトでされているので特に設定する必要はないと思っていたのですが、以下の現象がおこっています。原因がお分かりでしたらお教えください。 SHTMLファイル内で他ファイルインクルードを行うためにincludeを記述したのですが、引数名fileは正常に取り込めるのですが、virtualでは「404 Object Not Found」のエラーが出ます。以下該当の記述。 <!--#include file="./include/test.html"--> 正常 <!--#include virtual="../include/bgcolor.html"--> 異常 レンタルサーバ上ではどちらも問題なく表示でき、ローカルの場合だけエラーが出ます。 IISの設定に何か必要なのでしょうか? IISのバージョンは5.1 OSはXPです。 以上。よろしくお願い致します。

    • ベストアンサー
    • CGI
  • SSIのincludeを使用しているHTMLを、SSI負荷のサーバに移行したい

    SSIのincludeを使用してヘッダ・フッダ等を持たせていたHTMLを、SSIが使用できないサーバに移行することになりました。 トータルで500pほどあり、ヘッダ・フッダは共通ではないため全文置換するにしても手間と時間がかかります。 includeのタグの部分にそのままそのソースを引っ張ってきて吐き出してくれるようなソフトはないでしょうか?

    • 締切済み
    • CSS
  • SSIでインクルードしたファイルが文字化します。

    SSIでインクルードしたファイルをブラウザに表示するとインクルードで挿入したページの部分だけが文字化けしてしまいます。 ブラウザ上でUTF-8でエンコードして表示させると今度は インクルードしたもの以外が文字化し、逆にインクルードしたものがきちんと表示されます。 ソースをみると、メタタグでShift-JISになっているので そのようになるのではないかと思うのですが・・・ どのようにしてきちんと表示させればいいのかわかりません。

    • ベストアンサー
    • HTML
  • SSIを挿入したWEBぺージがFireFoxでブラウザの中央に表示され

    SSIを挿入したWEBぺージがFireFoxでブラウザの中央に表示される方法をどなたか教えていただけませんか? TOPページに最新情報を挿入するためSSIのインクルードを使ってページを更新したところ、それまでブラウザの中央に表示されていたのですが、FireFoxで左寄せになってしまいました。(IEでは中央に表示されます。) 他のページが全て中央表示なので何とか中央表示にしたいのですが、どなたか対処方法を御存じの方がいらっしゃいましたらお教えください。 もともとは,<iframe>で表示していたのですが、SEO上ページに更新記録を付け加えても変更していないことになってしまうので、SSIを使用することにしました。 挿入したタグは <!--#include file="kousin.html"--> です。 ページは http://www.gassyuku-saijo.jp です。 よろしくお願いします。

  • ssi設置について

    「予約状況カレンダー」というフリーのcgiをDLして動かすまではできましたが、同じものをssiで動かそうとしたら[an error occurred while processing this directive]というメッセージがでます。 HTMLソースの中に<!--#include virtual="(URL)"-->を埋め込んで名前を.shtmlにしました。サーバーはロリポップです。 ここのマニュアル【■実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。 ■上位ディレクトリを参照すると動作出来ません。 実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。】がよくわからない初心者ですが、どなたか初心者でも分かるような説明をしてくださいませんか?

    • 締切済み
    • CGI