2009-10-30 2 views
13

私は完全に混乱しています.Cassiniを(Visual Studioで)実行するとIE8で完璧にレンダリングされますが、localhostにデプロイされ、同じブラウザ(IE8)で表示されるといくつかの要素が混乱します。どのようにIEのページがCassiniとIIS7の間でレンダリングを行うことができますか?

私はBeyond Compare 3をHTMLファイルとCSSファイルで実行しましたが、まったく同じです。 IIS7が何らかの形で余分な/異なる情報をブラウザに送ることができる状況はありますか?誰もこれの前に何かの上を走っていますか?

ChromeとFirefoxはどちらも、同じWebページをCassiniとIIS7でうまくレンダリングすることに注意してください。

更新) F12キーを押した場合、IE8 Developer Toolsはあなたにどのブラウザモードとドキュメントモードがあると思いますか?

Cassini(http://localhost:22120)から実行している場合、IE8はIE8モード(IE7互換ビューを有効にするオプション付き)のままで、すべてが素晴らしいように見えます。

IIS7(http:// {マシン名})から実行している場合、IE8は自動的にIE8互換ビュー、IE7標準に入り、状況はひどく見えます。

+1

はの結果と比較を超えてあなたを持っている|実際に異なっているかを確認するには、「ファイルの名前を付けて保存...」MHTファイルを? –

+0

また、F12キーを押した場合、ブラウザモードとドキュメントモードではIE8 Developer Toolsはあなたがいると思いますか? –

+0

スタックオーバーフローで最善の質問。これまで=) – torke1

答えて

17

私の仮定に見ている場合レイアウトの違いが生じています。実際にはIEのように見えますが、これはツール|互換性ビューの設定。

互換性ビューでイントラネットサイトを表示する - これはデフォルトでオンになっています。 すべてのWebサイトを互換性ビューで表示します。

いずれかの方法で、あなたはあなたがレンダリングされることを望むモードを強制するために、標準のメタタグを使用する必要があります。

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

・ホープ、このことができます。

+1

これが答えです。 "http:// localhost"はインターネットゾーンのコンテンツのように扱われるために特殊なケースですが、(デフォルトでは)http:// machinenameはイントラネットゾーンのコンテンツのように扱われます。 – EricLaw

+0

イントラネットモードで実行すると、特に指定がない場合、IEはデフォルトで「IE = EumulateIE7」モードになります。インターネットゾーンのデフォルトは「IE = 8」モードです。私のサイトはイントラネット上で正常に動作していたので、IE = 7を使用しなければなりませんでした。 (IE = EmulateIE7も機能しましたが、状況によってはIE5モードでレンダリングを行うことができません)。 – nedned

+0

ありがとうございます。 – Raja

0

ページの内容が同じ場合、サーバーがページと共に送信しているヘッダーを比較します。

これを少し蹴った後、私は互換モードについて考えています。手動で強制的にIE8で互換モードでページをレンダリングしてみてください。レンダリングが変更されない場合は、そのWebサーバーからIEを読み込むときに互換モードでそのページをレンダリングするため、問題があることがわかります。

後者は(私のコメント以前に述べたように)場合は、IEを使用して、IISやカッシーニを使用しているかどうかに応じて、異なるレンダリングモードで作業しており、このされていることだったhttp://msdn.microsoft.com/en-us/library/dd567845%28VS.85%29.aspx

+0

これはかなり釘付けです。なぜなら、*何かが違うからです。それはコンテンツまたはヘッダーにする必要があります。 – Beska

1

実際、私は同じ問題がありました。 IE8にはツールメニューの互換性設定ダイアログがあります。 「互換モードでイントラネットサイトを表示する」を示すチェックボックスがあります。 IE7の互換モードはie7と同じではありませんが、いくつかの違いがあります。

1

同じページが異なるサーバー上で同じIE8ブラウザでレンダリングされる場合は、URLを確認してください。ドメインが完全修飾されていない場合、IE8は自動的に互換モードで表示されます。

5

私が見つけた最良の解決策は、Paulのものから遠くないと思いますが、Internet Explorerのバージョンを使用して、コンテンツ= "IE = 8"の他の問題を解決するようブラウザに指示します。

ここでは、次のとおりです。

<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
+0

これはIE8とIEの場合と同じようです。私はあなたの提案を試み、それはI8とIE9の両方で修正されました。ありがとう。 –

関連する問題