9

html5reset.orgで優れた HTML 5 リセット テンプレートを使用していますが、X-UA-Compatible メタ タグが機能していないようです。ヘッダーは次のようになります。

<!DOCTYPE html>

<!--[if lt IE 7 ]> <html class="ie ieNoHtml5 ie6 no-js" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie ieNoHtml5 ie7 no-js" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie ieNoHtml5 ie8 no-js" lang="en"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie ie9 no-js" lang="en"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<!-- the "no-js" class is for Modernizr. -->

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />


    <title>Title of Page</title>

IE で互換表示モードを使用するオプションが表示されます (URL フィールドの壊れたページ アイコン)。問題は、一部のクライアントが IE9 ブラウザーを「常に互換表示を使用する」モードに設定していることです。その結果、IE9 を使用しているにもかかわらず Web サイトが IE7 のように見え、X-UA-Compatible がこれをオーバーライドすることになっています。 .

今、面白いヘッダーのものを削除すると:

<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

...突然正常に動作し始めます。

html5reset.org自体が壊れたページ アイコンを表示しているように見えるため、どちらも機能しないようですが、html5boilerplate.comは機能し、同じアプローチを使用しているようです。

X-UA-Compatible を Web サーバー構成を介して応答ヘッダーに追加すると修正されるようですが、このアプローチに依存したくありません。


更新:ブラウザーが IE であることを検出した場合、html5boilerplate.comはHTTP 応答ヘッダーで X-UA-Compatible を送信しているようです。これが進むべき道のようです。

4

1 に答える 1

3

HTML5 Boilerplate は webserver 構成を推奨しています。より高速で、マークアップ ソリューションが機能しないいくつかのエッジ ケースを解決します。

于 2012-09-17T00:09:07.727 に答える