Подтвердить что ты не робот

Проверка HTML 5 w3c

Я проверил свой сайт с помощью validator.w3.org

Сообщается о следующей ошибке:

Line 5, Column 67: Bad value X-UA-Compatible for attribute http-equiv on element meta.
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >

Если я не включаю этот тег META, все посетители IE9 будут видеть мой сайт в режиме Quirks, и я хочу это предотвратить.

Любая помощь будет принята с благодарностью!

4b9b3361

Ответ 1

Вы всегда можете установить параметр X-UA-Compatible в фактические заголовки HTTP. Как вы это делаете, это зависит от используемого веб-сервера и того, что вы используете серверную структуру, если таковая имеется.

Ответ 2

Такая же проблема, но мое решение состоит в том, чтобы добавить следующую строку в мой файл .htaccess:

Header set X-UA-Compatible "IE=edge"

Отлично работает для меня...

Ответ 3

Вам просто нужно согласиться с тем фактом, что если вы хотите поддерживать IE, вам нужно отказаться от совершенной оценки валидации.

Хорошо, validity != quality

Ответ 4

Решение очень простое, и тема может включать в себя такие простые шаблоны функций просто открыть/шаблоны/ВАШ ШАБЛОН /warp/systems/themes/head.php

от

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

к

<!--[if IE]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->

Ответ 5

Для людей, использующих PHP, способ передать этот параметр через функцию заголовка в PHP:

header('X-UA-Compatible: IE=edge,chrome=1');

Вот сообщение с кодом + пояснения.

Ответ 6

Для парней, использующих ASP.NET MVC

Один из вариантов - использовать Action Filter для контроллеров/действий. Это немного замедляет ответы сервера, но я не знаю точных цифр. Но это чистый способ сделать это:

///
/// Represents an attribute that is used to add HTTP Headers to a Controller Action response.
///
public class HttpHeaderAttribute : ActionFilterAttribute
{
    ///
    /// Gets or sets the name of the HTTP Header.
    ///
    /// The name.
    public string Name { get; set; }

    ///
    /// Gets or sets the value of the HTTP Header.
    ///
    /// The value.
    public string Value { get; set; }

    ///
    /// Initializes a new instance of the  class.
    ///
    /// The name.
    /// The value.
    public HttpHeaderAttribute(string name, string value) {
        Name = name;
        Value = value;
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext) {
        if(!filterContext.HttpContext.Response.Headers.AllKeys.Contains(Name, StringComparer.OrdinalIgnoreCase))
            filterContext.HttpContext.Response.AppendHeader(Name, Value);
        base.OnResultExecuted(filterContext);
    }
}

Однако для меня самый лучший и самый чистый способ - использовать web.config. Поместите этот код в элемент <system.webServer>:

<httpProtocol>
  <customHeaders>
    <!-- 
                            http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
                            Uncomment to serve cross-domain ajax requests

                            <add name="Access-Control-Allow-Origin" value="*" />
                            -->
    <!-- 
                            Force the latest IE version, in various cases when it may fall back to IE7 mode
                            github.com/rails/rails/commit/123eb25#commitcomment-118920
                            Use ChromeFrame if it installed for a better experience for the poor IE folk 
                            -->
    <add name="X-UA-Compatible" value="IE=Edge,chrome=1" />
    <!-- 
                            Allow cookies to be set from iframes (for IE only)
                            If needed, uncomment and specify a path or regex in the Location directive 

                            <add name="P3P" value="policyref=&quot;/w3c/p3p.xml&quot;, CP=&quot;IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT&quot;" />
                            -->
    <!-- A little extra security (by obscurity) -->
    <remove name="X-Powered-By" />
  </customHeaders>
</httpProtocol>

Очевидно, что это работает только в IIS7 +.

НТН

Ответ 7

Вы пробовали не наплевать, что HTML-валидаторы говорят о вашем коде? Это обычно работает для меня.