Страница ASPX отображается по-разному при доступе в интрасети и в Интернете?

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

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

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

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

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

Ландшафт: http://twitpic.com/hxxtv


person MattSlay    schedule 16.09.2009    source источник
comment
Сейчас нет необходимости, так как Баретта попал прямо в точку. Тем не менее, спасибо, что прочитали.   -  person MattSlay    schedule 16.09.2009


Ответы (2)


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

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

<meta http-equiv="X-UA-Compatible" content="IE=8" />
person baretta    schedule 16.09.2009
comment
Ух ты! Идеально! Ты очень умный негодяй. Когда я разместил этот вопрос, я сказал себе: «Никто не будет тратить время на чтение всех этих подробностей, а тем более знать ответ, и они, вероятно, просто спишут меня со счетов как сумасшедшего, который не знает, что он делает». Большое спасибо. - person MattSlay; 16.09.2009

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

person jules345    schedule 19.04.2010