ASP.NETはWeb.configのIE7互換モードタグを無視します
-
05-07-2019 - |
質問
Web.configファイルに次のセクションがあります
<system.webServer>
<!-- For now..... lets be safe and put IE8 in IE7 compatibility mode-->
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=EmulateIE7" />
</customHeaders>
</httpProtocol>
</system.webServer>
しかし
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
私のサイトでページがレンダリングされるとき、ページのヘッダーにはは存在しません。この投稿のアドバイスに従いました ASP.NETアプリ-IE7互換モードを設定しますか? しかし、IE8およびIIS6を使用して期待どおりに機能していないようです。ヒントはありますか?
解決
問題は、 IIS6 を使用していることでした。 IIS6は、<system.web>
セクションではなくWeb.configの<system.webServer>
セクションを調べます(互換モードで実行されていない限り、IIS7で使用されます)。 IIS6を実行しているときに、サイトのすべてのページでこのメタタグをレンダリングするには、MasterPageに追加するのが最善の方法だと思います。最終的に、MasterPageのOnPreRenderイベントに次のコードブロックを追加しました。
Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });
単なるAddの代わりにAddAtを使用した理由は、X-UA-Compatibleメタタグが尊重されるためには、ページヘッダーの最初の要素でなければならないためです。
これは同じ船に乗っている人の助けになりますように!
所属していません StackOverflow