2009-10-30 9 views
13

Jestem całkowicie zdezorientowany - mam stronę internetową, która idealnie się wyświetla w IE8 po uruchomieniu przez Cassini (w Visual Studio), ale ma kilka pomieszanych elementów (styl/wygląd) po wdrożeniu na localhost i oglądanych przez tę samą przeglądarkę (IE8).W jaki sposób strona w IE renderuje się inaczej między Cassini i IIS7?

Uruchomiłem Beyond Compare 3 na plikach html i CSS i są one dokładnie takie same. Czy są jakieś okoliczności, w których IIS7 mógłby w jakiś sposób przesyłać dodatkowe/inne informacje do przeglądarki? Czy ktoś już kiedyś miał coś takiego?

Pamiętaj, że zarówno Chrome, jak i Firefox renderują tę samą stronę za pośrednictwem Cassini i IIS7.

(Aktualizacja) Co trybie przeglądarki i trybie dokumentu nie IE8 Developer Tools, że jesteś w po naciśnięciu klawisza F12?

Podczas pracy z Cassini (http://localhost:22120), IE8 pozostaje w trybie IE8 (z opcją włączenia widoku zgodności IE7) i wszystko wygląda świetnie.

Podczas pracy z IIS7 (http: // {nazwa komputera}), IE8 automatycznie przechodzi w IE8 Compat View, standardy IE7 i rzeczy wyglądają okropnie.

+1

Czy Beyond porównali wyniki „Plik | Zapisz jako ...” plik MHT, aby zobaczyć, co faktycznie jest inaczej? –

+0

Również, jaki tryb przeglądarki i tryb dokumentu czy narzędzia programistyczne IE8 uważają, że jesteś przy naciśnięciu F12? –

+0

Najlepsze pytanie w przepełnieniu stosu. Zawsze. =) – torke1

Odpowiedz

17

moje założenie (jak wspomniano w moim komentarzu wcześniej) było to, że IE pracuje w innym trybie renderowania, w zależności od tego, czy używasz IIS lub Cassini, a to powoduje różnice w układzie. Wygląda na to, że to IE powoduje to, w oparciu o ustawienia znalezione w Tools | Ustawienia widoku zgodności. Dostępne są dwa pola wyboru:

Wyświetlanie witryn intranetowych w widoku zgodności - jest to domyślnie zaznaczone. Wyświetl wszystkie witryny w widoku zgodności - nie jest.

Tak czy inaczej, należy użyć standardowego tagu meta, aby wymusić tryb, który ma zostać wydany.

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

nadzieję, że to pomaga.

+1

To jest odpowiedź. "http: // localhost" jest traktowany jako wyjątek, traktowany jak zawartość strefy internetowej, podczas gdy (domyślnie) http: // nazwa maszyny traktowany jest jak zawartość strefy intranetowej. – EricLaw

+0

Trochę dodatkowych informacji, które znalazłem, było konieczne, aby rozwiązać mój problem: w trybie intranetowym, jeśli nie określono inaczej, IE domyślnie ustawia tryb "IE = EumulateIE7". Natomiast domyślną strefą internetową jest tryb "IE = 8". Ponieważ moja strona działała poprawnie w intranecie, musiałem użyć "IE = 7". (IE = EmulateIE7 również by działało, ale w pewnych okolicznościach może to zakończyć rendering w trybie IE5, co nie jest dokładnie pożądane) – nedned

+0

Dziękuję bardzo: -) .... Zaoszczędził wiele godzin. – Raja

0

Jeśli zawartość strony jest taka sama, porównaj nagłówki wysyłane przez serwery ze stroną.

Po zrobieniu tego trochę na temat trybu zgodności. Spróbuj ręcznie zmusić IE8 do renderowania strony w modach zgodności. Jeśli renderowanie się nie zmienia, to wiesz, że problem polega na tym, że program IE renderuje tę stronę w trybie zgodności podczas odczytu z tego serwera WWW.

Jeśli to drugie to sprawa spojrzeć http://msdn.microsoft.com/en-us/library/dd567845%28VS.85%29.aspx

+0

To prawie nabija, ponieważ * coś * musi być inne. Musi to być treść lub nagłówek. – Beska

1

Właściwie to miałem ten sam problem. IE8 ma okno dialogowe ustawień kompatybilności w menu narzędzi. Jest pole wyboru, które wskazuje "Wyświetl witryny intranetowe w trybie zgodności". I nie, że tryb zgodności IE7 nie jest taki sam jak przy użyciu ie7, istnieją pewne różnice.

1

Jedna strona uwaga do tego wydania: jeśli ta sama strona renderuje się inaczej na różnych serwerach, ale w tej samej przeglądarce IE8, sprawdź adres URL - IE8 automatycznie wyświetla się w trybie zgodności, jeśli domena nie jest w pełni kwalifikowana.

5

Myślę, że najlepsze rozwiązanie, które znalazłem, jest w pobliżu Paul'a, ale mówi przeglądarce, aby używała twojej wersji Internet Explorera, która rozwiązała inne problemy, które mam z content = "IE = 8".

Oto ona:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
+0

To wydaje się być takie samo dla IE8 i IE. Wypróbowałem twoją sugestię i naprawiłem ją dla I8 i IE9. Dzięki. –

Powiązane problemy