Internet Explorer 11 отключает "отображение сайтов интрасети в режиме совместимости" с помощью метатега не работает

Я работаю на веб-сайте интрасети более 6 месяцев были ли я использую ниже html5 doctype и метатег совместимости границ, чтобы заставить Internet Explorer не эмулировать более старую версию браузера, и это сработало нормально.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>My title</title>
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>

Причина, по которой я это делаю, заключается в том, что в том месте, где я работаю, используется параметр политики, чтобы включить просмотр совместимости для всех сайтов интрасети, и этот подход с использованием параметра EDGE работал в Internet Explorer 9.

Intranet site compatibility view setting

Более месяца назад я был обновлен до Internet Explorer 11, и сайт по-прежнему работал должным образом.

Сегодня это перестало работать так, как ожидалось, я не могу сказать точно, но я думаю, что политика, которая заставляет представление совместимости не была включена в IE11, а теперь это... и поскольку это было включено, метатег совместимости больше не выполняет то, что ожидается, и этот сайт запускается в режиме Enterprise, который эмулирует IE8.

Кто-нибудь знает, как это исправить, и заставить IE11 использоваться на сайте интрасети, когда применяется совместимость "Режим предприятия"? и не может быть отключен через настройки браузера?

ИЗМЕНИТЬ

Я только что попробовал добавить пользовательский заголовок в свой web.config, как объяснено в этом ответе qaru.site/info/74755/...

и это не сработало для меня. Я все еще получаю следующее сообщение в консоли панели инструментов разработчика

HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.

Как будто версия 8 рассматривается как EDGE, когда этот параметр совместимости интрасети включен в IE11.

Этот пост: https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---disabling-compatability-mode объясняет это хорошо, я еще не пробовал устанавливать этот заголовок с помощью кода, и наши пользователи не имеют доступа к изменению настроек своего браузера.. ни одна из других изменений еще не работала.

UPDATE

Пожалуйста, посмотрите мой комментарий к этому сообщению о том, какая разница между режимом Enterprise и режимом совместимости, потому что это важно.

Ответ 1

Убедитесь, что:

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

- это первый тег <meta> на вашей странице, иначе IE может его не уважать.

В качестве альтернативы проблема может заключаться в том, что IE использует Enterprise Mode для этого веб-сайта:

  • В вашем вопросе упоминается, что консоль показывает: HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
  • Если вам может понадобиться отключить корпоративный режим (или как это) или отключить его для этот веб-сайт из меню "Сервис" в IE.
  • Однако корпоративный режим в теории должен быть переопределен тегом X-UA-Compatible, но IE может иметь ошибку...

Ответ 2

Эта проблема обычно вызвана тем, что URL-адрес веб-сайта/интрасети размещен в одном из:

  • Список режимов совместимости
  • Интранет-зона Internet Explorer
    (с включенным отображением сайтов интрасети в режиме просмотра совместимости)
  • Список режимов предприятия

В корпоративных сетях эти параметры просмотра совместимости часто контролируются централизованно с помощью групповой политики. В вашем случае причиной этого является корпоративный режим.

IE 11 Enterprise Mode

К сожалению, установка META X-UA-Compatible не будет переопределять.

Для конечных пользователей

Иногда единственный способ для конечных пользователей переопределить это - нажать F12 и изменить режим документа под вкладкой эмуляции. Однако этот параметр не является постоянным и может вернуться после закрытия инструментов разработчика.

Вы также можете попытаться исключить свой сайт из зоны интрасети. Но список доменов, входящих в зону Интрасети, обычно также контролируется групповой политикой, поэтому вероятность этой работы тонкая.

Чтобы просмотреть список доменов, входящих в зону интрасети, перейдите по ссылке:

Инструменты → Свойства обозревателя → Безопасность → Сайты → Дополнительно

Если список содержит ваш поддомен и неактивен, вы не сможете переопределить представление совместимости до тех пор, пока его сетевой администратор не допустит его.

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

Для сетевых админов

Загрузка веб-сайта с помощью средств разработки Open (F12) часто сообщает о причине перехода IE в более старый режим.

Все 3 упомянутые выше настройки обычно контролируются групповой политикой, хотя иногда они могут быть переопределены на пользовательских машинах.

Если Enterprise Mode является проблемой (как представляется, это относится к оригинальному плакату), могут оказаться полезными следующие две статьи:

Ответ 3

Для тех, кто создает проект ASP.NET MVC, убедитесь, что вы добавили:

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

на странице "Макет" (шаблон). Я просто потратил два часа на отладку и настройку, только чтобы понять, что я только добавил этот метатег на свои дочерние страницы. Как только я добавил его на мою страницу макета, браузер загрузился в режим EDGE.

Ответ 4

Это старая проблема с некоторой хорошей информацией. Но я только что нашел, что использование FQDN отключает режим совместимости в IE 9-11. Пример. У меня проблема совместимости с
http://lrmstst01:8080/JavaWeb/login.do
но проблемы уходят с
http://lrmstst01.mydomain.int:8080/JavaWeb/login.do
NB:.int является частью нашего внутреннего домена

Ответ 5

Отмеченный ответ правильный. Тем не менее, Pricey, вы должны следить за этим с помощью групп администрирования AD и рабочего стола. Они неправильно используют список сайтов в режиме IE11 Enterprise Mode. Microsoft НЕ намерена использовать его для всех сайтов интрасети внутри организации. Это будет распространять существующие настройки "сделать все интранет-сайты в режиме совместимости", что является бичем продвижения корпоративного сайта во всем мире.

Он предназначен для реализации как "черный список", с несколькими сайтами, которые на самом деле требуют устаревшего режима браузера, указанного в списке "Режим предприятия" с указанными требованиями к их рендерингу. Затем все другие сайты в вашей организации освобождаются от использования Edge. Люди в вашей организации, которые внедрили его со всеми интрасети, включились для начала, полностью не поняли, как должен реализовываться Enterprise Mode.

Ответ 6

Вопрос немного стар, но я решил очень похожую проблему. У нас есть несколько сайтов интрасети, в том числе тот, за который я несу ответственность, а другие требуют режима совместимости или они ломаются. По этой причине сайт правил IE по умолчанию поддерживает режим совместимости на сайтах интрасети. Я обновляю свои вещи и больше не нуждаюсь в нем; на самом деле некоторые из функций, которые я пытаюсь использовать, не выглядят правильно в режиме совместимости. Я использую метатег IE-Edge, как вы.

IE предполагает, что веб-сайты без полностью квалифицированного адреса являются интрасети и действуют соответственно. Имея это в виду, я просто изменил привязки в IIS, чтобы слушать только полноценный адрес, а затем настроить фиктивный веб-сайт, который прослушивал неквалифицированный адрес. Второй перенаправляет весь трафик на полностью квалифицированный адрес, заставляя IE считать его внешним сайтом. Сайт корректно отображается с или без параметра "Режим совместимости для интрасети".

Ответ 7

Переместите его в зону "Надежные узлы", добавив его в список "Надежные узлы" или локальную настройку. Это выведет его из зоны интрасети и не будет отображаться в приложении "Совместимость". Просмотр.

Ответ 8

Добавьте свойство below в файл web.config для сайтов IIS. Это работало для меня в моей интрасети в IE11.

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="X-UA-Compatible" value="IE=edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer> 

Ответ 9

Я решил эту проблему, перенаправив пользователя к FQDN сервера, на котором размещена интрасеть.

IE, вероятно, использует мировой худший алгоритм для обнаружения сайтов "intranet"... действительно, указание server.domain.tld решает проблему для меня.

Да, вы правильно это прочитали, IE обнаруживает сайты интрасети не по частному IP-адресу, как, например, любой разработчик, который слышал о TCP/IP, не сделал бы, частью хоста URL-адреса, если у него нет домена часть должна быть внутренней.

Страшно знать, что разработчики IE не понимают основные концепции TCP/IP.

Обратите внимание, что это было у бизнес-клиента BIG, и заставить их менять объект групповой политики, поскольку вы пытаетесь переместить Альпы на восток на 4 метра, а не собираться.