Страница ASPX отображается по-разному, когда достигается в интрасети и интернете? - PullRequest
0 голосов
/ 16 сентября 2009

Это так странно для меня .. У меня IIS 5 работает на XP и на нем размещено небольшое приложение ASP.Net для нашей локальной сети, к которому мы можем получить доступ, используя имя компьютера, виртуальный каталог и имя страницы ( http://matt/smallapp/customers.aspx),, но вы также можете получить доступ к этому серверу и странице IIS из Интернета, потому что у меня есть общедоступный IP-адрес, который мой брандмауэр направляет на компьютер "Matt" (например, http://213.202.3.88/smallapp/customers.aspx [просто выдуманный IP-адрес]). Не волнуйтесь, у меня установлена ​​аутентификация домена Windows для защиты приложения от анонимных пользователей.

Так что все вышеперечисленные части работают нормально. Но что странно, так это то, что Граница элементов div на странице отображается гораздо толще при доступе к странице из интрасети, по сравнению с Интернетом (я использую IE8), а также с некоторыми элементами макета div (растягивание и т. Д.) действует по-другому. Почему он будет отображаться по-разному в одном и том же браузере в зависимости от того, был ли он доступен из локальной сети или из Интернета? Это НЕ делает это в FireFox. Так что это должно быть просто в IE8.

Все CSS для div'ов прямо на HTML-странице, поэтому я не думаю, что это кеширование CSS-файла.

Обратите внимание, как различаются границы на этих двух изображениях:

Интернет: http://twitpic.com/hxx91 .

Lan: http://twitpic.com/hxxtv

Ответы [ 3 ]

3 голосов
/ 16 сентября 2009

Это наиболее определенно, потому что веб-сайты, расположенные во внутренних сетях, отображаются в режиме quirks по умолчанию в IE8, в то время как страницы, расположенные в Интернете, будут определять режим рендеринга на основе типа документа. Это означает, что во время просмотра вашей страницы через Интернет объявление doctype этого документа диктует режим рендеринга, а если вы просматриваете в интрасети, IE8 использует механизм рендеринга IE7.

Режим рендеринга можно явно переопределить, изменив пользовательские настройки совместимости IE или, всегда заставляя IE8 использовать механизм рендеринга IE8, добавив метатег на страницу:

<meta http-equiv="X-UA-Compatible" content="IE=8" />
0 голосов
/ 26 апреля 2010

БОЛЬШОЕ Спасибо, ребята. Я не мог понять, почему мой сайт отображался нормально, когда я использовал сервер разработки Asp.Net, но когда я тестировал его в нашей интрасети с использованием IIS 6, некоторые страницы отображались неправильно. В случае, если это кому-нибудь еще поможет, я установил режим совместимости IE для своего сайта в IIS на «IE = edge». Смотрите эту статью для более подробной информации;

Реализация переключателя META на IIS http://msdn.microsoft.com/en-us/library/cc817572.aspx

0 голосов
/ 19 апреля 2010

Вы также можете изменить параметр реестра IntranetCompatibilityMode (HKCU/Software/Microsoft/Internet Explorer/Browser Emulation/IntranetCompatibilityMode) для IE, это приведет к тому, что IE будет отображать страницы интрасети так же, как если бы они были в Интернете.

...