SSIを利用してCSSレイアウトを行うとソースが消える!?

このQ&Aのポイント
  • 以前tableレイアウトとSSIで作成されたページをCSSレイアウトに変更することになりましたが、本番環境ではソースの一部が表示されません。
  • 問題の原因は、SSIエラーが発生しており、正しく表示されない要素が存在することです。
  • 解決策として、SSIエラーを確認し修正することや、他の方法でCSSレイアウトを実装することが考えられます。
回答を見る
  • ベストアンサー

SSIを利用してCSSレイアウトを行うとソースが消える!?

以前tableレイアウトとSSIで作成されたページをCSSレイアウトに変更することになりコーディングしたのですが、ローカル環境では正しく表示されるのですが、いざ本番環境で見てみると、大幅なズレが出ました。 原因を調べるためFirefoxのアドオン"Firebug"でソースを確認したところ、本来表示されるべきソースが抜けてしまっていました。 本来であれば↓ <div id="Box"> <div class="a"> <div id="b">●●</div> <div id="c">●●</div> <div id="d"><!--#include virtual="index.html" --></div> <div id="e">●●</div> </div><!--a End--> <div class="a"> <div id="f">●●</div> <div id="g">●●</div> <div id="h"><!--#include virtual="index.html" --></div> <div id="i">●●</div> </div><!--a End--> <br class="floatcrea" /> </div><!--Box End--> と表示させたいのですが、 実際表示されるのは↓ <div id="Box"> <div class="a"> [an error occurred while processing this directive] </div><!--Box End--> <div id="e">●●</div> </div><!--a End--> <div class="a"> <div id="f">●●</div> <div id="g">●●</div> <div id="h"><!--#include virtual="index.html" --></div> <div id="i">●●</div> </div><!--a End--> <br class="floatcrea" /> と出て表示されてしまいます。 [an error occurred while processing this directive] のSSIエラーが出て”</div><!--Box End-->”が移動しています。原因はなんなんでしょうか?教えてください。 ・使用ソフトDWcs3 ・<div class="a">はfloat:left; ・サーバーはSSI利用可 ・ファイル拡張子は".shtml"を利用

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

>テーブルレイアウト時、正常に動いていたものをそのまま使用 変更した部分のHTMLコメントにSSI構文に解釈されそうなコメント・・・ <!--#・・・-->とかが混じっていませんか? それもなく、読み込む側の構文、読み込むファイルには実績があり変更が一切ないという事なら、 とりあえずサーバ管理者になにか変更がなかったか確認してみるかなぁ。 SSIの処理ではSSI構文しか処理しませんから周りがtableからdivに変更があっても行われる処理には一切変わりがないので環境を疑うしかないです。 何かヒントがあればいいのですが。 http://www.google.co.jp/search?q=an+error+occurred+while+processing+this+directive&lr=lang_ja

32hero
質問者

お礼

回答ありがとうございます。 >変更した部分のHTMLコメントにSSI構文に解釈されそうなコメント・・・ ><!--#・・・-->とかが混じっていませんか? cs3の新規ドキュメント、レイアウトを使用しページを作成した際、idの終了</div>の後にコメントアウトで<!--#head End-->が記述されていました。 "#"を削除したところ、正確に表示されました。 結局<!--#・・・-->のうしろから<!--#include virtual="index.html" --> の間のソースが抜けていました。 皆様丁寧な回答本当にありがとうございました。 そしてsteel_grayさん、ありがとうございました。

その他の回答 (2)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

> ローカルでは動く サーバのSSIの仕様と あなたのファイルの記述が マッチングしていないんだと思うわ。 サーバのSSIの仕様を確認してみて。 include virtualは/から指定してみるとか、ね。

32hero
質問者

お礼

回答ありがとうございます。 サーバーの仕様とファイルの記述はテーブルレイアウト時と同じですので、正常に動いていたものです。 >include virtualは/から指定してみるとか、ね。 ちなみにincludeするファイルは同階層に置いてあります。 ためしに<!--#include virtual="./index.html" -->と記述しましたが駄目でした...

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

<!--#include virtual="index.html" --> がエラーになってるだけでしょう。(パス間違い、ファイルがない、ファイル読み込みのエラーetc..) SSIってのはサーバ側で処理されブラウザに渡ってくるのでアドオンなど使わなくても、普通のブラウザのソース表示で期待しているように中身が埋め込まれていれば正常、[an error occurred ~が埋め込まれてきたならSSI構文実行エラーです。 http://www.tohoho-web.com/wwwssi.htm#Include

32hero
質問者

お礼

回答ありがとうございます。 ><!--#include virtual="index.html" --> >がエラーになってるだけでしょう。(パス間違い、ファイルがない、 >ファイル読み込みのエラーetc..) テーブルレイアウト時、正常に動いていたものをそのまま使用していますので、パス間違い、ファイルがないは考えにくいかと思います。 リンク先に記述してありました<!--#include file="~" -->に変更してアップしても結果は同じでした。 ためしに<!--#include virtual="index.html" -->を記述してある.shtmlファイルの拡張子を.htmlに変更し<!--#include virtual="index.html" -->を削除してアップすると正しく表示されます。

関連するQ&A

  • CSSとSSI 一緒に使えますか?

    今までテーブルでデザインしたサイトでSSIを使ってメニューなどを更新していました 同じような感じのデザインのサイトをCSSで作成し、SSIを利用しようと思ったのですが、どうしてもSSIが利用できません CSSも初心者でテンプレートをコピペしてなんとかやってみた感じです <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta name="description" content="このページの要約文"> <meta name="keyword" content="キーワード,キーワード,キーワード"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>このページのタイトル</title> <link rel="index" href="http://"> <link rel=stylesheet type="text/css" href=".css"> <div align="center"> <div id="outline"> <div class="header"> おお </div><!-- end header --> <div align="center"> <div id="frame"> <div id="frame-margin"> <div class="center_left"> <div class="center"> ああ </div><!-- end center --> <div class="left"> いい <!--#include virtual=".html"--> </div><!-- end left --> <br class="c-both"> </div><!-- end center_left --> <div class="right"> うう <!--#include virtual=".html"--> </div><!-- end right --> <br class="c-both"> </div><!-- end frame-margin--> </div><!-- end frame --> </div><!-- end centering --> ご教授のほどなにとぞよろしくお願いします

  • SSIに付いて

    こんばんは 初心者には、無謀すぎる挑戦なんですが・・ ヨミーサーチの登録件数をトップページに表示させようとしています。 (1)自分で用意したindex.html (2)index.htmlに、インラインフレームを作った。 (3)メモ帳を開いて「<!--#include file="./log/total_url.log"--> 」(ヨミサーチの登録フォルダ)を書き、「count.shtml」で、保存。 (4)index.htmlに作った、インラインフレームのリンク先は、サーバーに置いた、「count.shtml」アドレスを入れた。 そして、アクセスしたら「[an error occurred while processing this directive]」と、表示されてしまってます。 SSIが使えるサーバーなんですが・・・・

  • htmlの中にssiでphpを表示させる方法について

    いつもお世話になっています。 タイトルにもありますが、htmlファイルの中でphpの実行内容を表示させたいと思っています。 htaccessでhtmlでもssiが動くように設定してあるので、htmlの中でssiを使用してphpを呼び出す事はできるでしょうか? <!--#include virtual = "~.php" --> <!--#include file = "~.php" --> 上記のように試してみたのですが、「[an error occurred while processing this directive] 」と表示されてしまいます。 この記述方法で間違っていないと思っていたのですが、どうしても上手くできません。 phpまでのパスを相対パスや、絶対パスで指定してみましたが、やはりダメです。 表示させたいphpは、直接アクセスするとちゃんと表示されます。 またphpのパーミッションは644となっています。 アドバイスを御願い致します。

    • 締切済み
    • PHP
  • SSIを使ってCGIを呼び起こしたいのですが

    index.shtmlのタグにssiを使用したいのですが index.cgi?mode=m のようなパラメータもつけて実行させる場合 <!--#exec cgi="./index.cgi?mode=m"> ではだめなんでしょうか? [an error occurred while processing this directive] というエラーがでました。 どうかご教授ください。

    • ベストアンサー
    • CGI
  • ssi設置について

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

    • 締切済み
    • CGI
  • SSIでのエラーについて

    こんばんわ。 RedHat7.2で、Perlで、CGIの勉強をしはじめましたが、 SSIが どうもうまくいきません。 CGIならうまくいくのですが、HTMLからSSIでCGIを実行しようと するとうまくいきません。 Apacheで練習しているのですが、Apacheの設定が悪いのか、ほかに 重大なミスをしてるのかわかりません。 HTMLの中に #exec cgi を入れてみたんですが、 ブラウザにはその部分が [an error occurred while processing this directive] と表示されるだけなんです。 ごくごく簡単なカウンターなんですが。。。 SSIにおいて、これだけは必ずしなければだめ、というのが あれば教えていただきたいのですが。。。 よろしくお願いいたします。

  • 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 なぜ下方向にずれて表示されるのか、解決できません。 ぜひとも、ご教授お願いします。

  • htaccess ssi basic認証

    ssiでヘッダー・フッターを読み込んでいるサイトがあります。 そこでまずhtaccessでssi、shtml→htmlへの設定をしています。 そのサイトの中でディレクトリを切ってbasic認証が必要なページを作成しました。 そのディレクトリの中ではヘッダー・フッターが読み込むことができず、エラーが表示されます。 an error occurred while processing this directive そこでbasic認証に使ったhtaccessにもssiの設定を追記しましたがうまく行きません。 ssiとbasic認証を同時に設定することはできるのでしょうか。

  • ApacheをまたがるSSIの利用方法

    よろしくお願いします。 SSIをHTMLから読み出す際タグ内に exec cgi="/フルパス/cgi-bin/test.cgi" のように記述し、ブラウザから開くと、 [an error occurred while processing this directive] と出ます。 これは、パスが間違えていることが原因と思われます。 環境が特殊で、 apacheをSSL用((1))と非SSL用((2))に二つ、同じサーバ内に立ち上げています。 (2)のHTMLから、フルパスで(1)のCGIをキックすることは可能でしょうか? それともapacheをまたがってSSIからCGIをキックするのは無理なのでしょうか? ご回答、どうかおねがいいたします。

    • ベストアンサー
    • Perl
  • CSSでのレイアウトについて

    現在、table、flameタグを使わず、CSSだけでレイアウトを組んでいるのですが、その際、BOX同士が離れてしまってどうしてもBOX同士をくっつけれません。。Illustratorで作った画像をスライスしてそれをつなげたいのですが。。。marginも0にしてるのに、どうもBoxの底辺にわずかな隙間ができてしまうのです。。 css body { width:800px; margin:0; padding:0; border:0; } #outline { width:800px; margin:0; padding:0; border:0; } <!-- endheader --> <div class="center-free1"> <div class="main"> メインスペース </div> <div class="free1"> </div> <br class="clear"> </div> <div class="free2"> 灰色back </div> <div class="clear"> </div> <div class="under"> </div> </div> </BODY> 一応ソースも載せてみました。。周りでcssを使ってる人がいないので、誰にも聞けず、途方に暮れています。。どうかご教授願います。。

    • ベストアンサー
    • CSS

専門家に質問してみよう