私の開発者マシンでは、ASP.NET MVC 3 アプリケーションは完全に動作します (IE9、Firefox) が、実稼働サーバーで IE9 で開くと、JavaScript コードと CSS の一部 (border-radius など) が IE9 に入りません。 . ローカルホストIE9の開発マシンではうまく機能するため、IISが疑われます。サーバーのバージョン (Win 2008 R2、IIS 7.5) と IE は、両方のコンピューターで同じです。何が問題なのですか?
3 に答える
これはほぼ間違いなくIISとは関係ありません。ここで起こりそうなことは、IE9がそれ自体の利益のためにあまりにも賢いということです。
IEには、ローカルイントラネットにサイトをロードするときに、オンにするとブラウズにIE8互換モードにフォールバックするように指示する構成設定があります。
この設定の考え方は、危険な内部Webアプリケーションを使用している企業がIE9にアップグレードしやすくすることです。これは、理論上、内部サイトがIE8モードで引き続き機能するためです。
それが理論です。実際には、それはいくつかの理由で悪い考えでした。
本当に悪い部分は、設定がデフォルトでオンになっていることです。
ほとんどの人は自分のサイトを開発していないので、ほとんどのユーザーは気付かないでしょう。しかし、「内部イントラネット」にはローカルホストが含まれているため、Web開発者にとっては非常に厄介な機能になる可能性があります。設定を見つけて、オフにすることをお勧めします。
フラグをオンにしたままIE9を使用している場合でも、ローカルホストからサイトをロードしないため、他の誰もこの影響を受けることはありません。
一部のユーザーは、ブラウザを常に互換モードを表示するように設定している可能性があります(なぜそうなるのかは想像できませんが、可能です)。<head>
これらのユーザーの場合、セクションに次のコード行を追加すると便利です。
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
これにより、IEは常に利用可能な最高のレンダリングエンジンを使用するようになります(したがって、IE9はIE9モードになります)。これは他のユーザーに対処します。ただし、自分の場合は、設定でフラグを手動でオフにする必要があると思います。正しく思い出せば、そのローカルイントラネット設定がX-UA-Compatible
ヘッダーを上書きするためです。
それが物事を説明するのに役立つことを願っています。
IIS と ASP.NET は、CSS のレンダリング方法とは関係がないため、心配する必要はありません。
IE9 でそれらを異なる方法でレンダリングするには、そのうちの 1 つが別のモードを使用していると推測します。F12 を押して開発者ツールにアクセスすると、モードを IE7、IE8、IE9 から変更するための 2 つのオプションが表示されます。両方が IE9 に設定されていることを確認してください。適切な CSS が表示されるはずです。
境界線の半径は IE9 で正しくレンダリングされるはずです。ページ ヘッダーにこれがない可能性があります
<meta http-equiv="X-UA-Compatible" content="IE=edge" />