Как страница в IE может по-разному отображаться между Cassini и IIS7? - PullRequest
13 голосов
/ 30 октября 2009

Я полностью сбит с толку - у меня есть веб-сайт, который прекрасно отображается в IE8 при запуске через Cassini (в Visual Studio), но имеет несколько испорченных элементов (стиль / внешний вид) при развертывании на localhost и просмотре через тот же браузер (IE8) .

Я запустил Beyond Compare 3 для файлов html и CSS, и они точно такие же. Есть ли обстоятельства, когда IIS7 мог каким-то образом отправлять дополнительную / другую информацию в браузер? Кто-нибудь сталкивался с чем-то подобным раньше?

Обратите внимание, что Chrome и Firefox хорошо отображают одну и ту же веб-страницу через Cassini и IIS7.

( Обновление ) В каком режиме обозревателя и в режиме документа инструменты разработки IE8 появятся, если вы нажмете F12?

При запуске из Cassini (http://localhost:22120), IE8 остается в режиме IE8 (с возможностью включения представления совместимости IE7), и все выглядит отлично.

При запуске из IIS7 (http://{machine имя}) IE8 автоматически включается в IE8 Compat View, стандарты IE7 и все выглядит ужасно.

Ответы [ 5 ]

17 голосов
/ 30 октября 2009

Мое предположение (как упоминалось в моем комментарии ранее) состояло в том, что IE работает в другом режиме рендеринга, в зависимости от того, используете ли вы IIS или Cassini, и это вызывает различия в макете. Похоже, что именно IE вызывает это, основываясь на настройках, найденных в Tools | Совместимость Просмотр настроек. Есть два флажка:

Отображение сайтов интрасети в режиме совместимости - по умолчанию это отмечено. Показать все сайты в режиме совместимости - это не так.

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

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

Надеюсь, это поможет.

5 голосов
/ 17 февраля 2012

Я думаю, что лучшее решение, которое я нашел, недалеко от решения Пола, но оно говорит браузеру использовать вашу версию Internet Explorer, которая решает другие проблемы, которые у меня есть с content = "IE = 8".

Вот оно:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
1 голос
/ 08 апреля 2011

Примечание к этой проблеме: если одна и та же страница отображается по-разному на разных серверах, но в одном и том же браузере IE8, проверьте URL-адрес - IE8 автоматически отображается в режиме совместимости, если домен не полностью квалифицирован.

1 голос
/ 14 марта 2011

На самом деле у меня была такая же проблема. IE8 имеет диалог настроек совместимости в меню инструментов. Существует флажок, который указывает «Отображать сайты интрасети в режиме совместимости». И не то, чтобы режим совместимости IE7 не был таким же, как при использовании ie7, есть некоторые различия.

0 голосов
/ 30 октября 2009

Если содержимое страницы одинаковое, сравните заголовки, которые отправляют серверы, со страницей.

После того, как я немного об этом упомянул, я подумал о режиме совместимости. Попробуйте вручную заставить IE8 отобразить страницу в моде совместимости. Если рендер не меняется, то вы знаете, что проблема в том, что IE отображает эту страницу в режиме совместимости при чтении с этого веб-сервера.

Если последний случай, посмотрите на http://msdn.microsoft.com/en-us/library/dd567845%28VS.85%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...