2008-09-18 9 views
6

Pracuję nad aplikacją internetową i co jakiś czas natrafiamy na sytuacje, w których strony ładują się bez stosowania CSS. Ten problem pojawił się w IE6, IE7, Safari 3 i FF3.Co może spowodować, że CSS nie będzie ładowany sporadycznie we wszystkich przeglądarkach?

Odświeżanie strony zawsze naprawi problem.

Istnieją 3 pliki CSS załadowane, wszystkie w tym samym bloku stylu używając @import:

<STYLE type="text/css"> 
    @import url([base css file]); 
    @import url([skin css file]); 
    @import url([generated css path]); 
</STYLE> 

W każdej sytuacji, gdy trochę czasu, aby zbadać źródło HTML, nie ma nic niezwykłego. Dzienniki dostępu również wydają się normalne - otrzymujemy odpowiedzi HTTP 304 dla statycznych plików CSS, gdy tylko zostaną o to poproszone, oraz odpowiedź HTTP 200 dla wygenerowanego CSS.

Typ MIME to tekst/css dla plików css i wygenerowanych css. Używamy serwera iPlanet, który przekazuje żądania do serwera Tomcat.

davebug zapytał:

Czy zawsze ten sam plik css nie ładuje, czy jest problem z nimi wszystkimi, równomiernie?

Żadne pliki CSS nie ładują się. Wszelkie style zdefiniowane w HTML działają dobrze, ale nic w żadnym z plików CSS nie działa, gdy tak się dzieje.

+0

Czy to zawsze ten sam plik css nie ładuje się, czy problem z nimi wszystkimi jest równomierny? –

Odpowiedz

4

miałem coś podobnego zdarzyć, że udało mi się rozwiązać poprzez włączenie arkusz stylów baza najpierw za pomocą linku „rel” metoda zamiast "@import". tj. przenieś swój [podstawowy plik css] do:

<link rel="stylesheet" href="[base css file]" type="text/css" media="screen" /> 

i umieść go przed innymi.

+0

Wprowadziliśmy tę zmianę kilka tygodni temu i jak dotąd nie zauważyliśmy problemu. Zdarza się tak przypadkowo, choć trudno powiedzieć, czy jest poprawiony czy nie. – Illandril

+0

To nie działa dla mnie. Mogłem się tego pozbyć dopiero po przeniesieniu plików CSS na zewnętrzny serwer WWW (inny niż Tomcat). – weekens

0

Użyj ab lub httperf lub curl lub czegoś, aby wielokrotnie ładować pliki CSS z serwera WWW. Być może nie jest to konsekwentne wyświetlanie stron.

3

jeśli zdarza się to na tyle często, że można go zobaczyć w przeglądarce, spróbuj zamienić nagłówki Live HTTP Firefox lub rozszerzenie Tamper Data i obejrzeć nagłówki odpowiedzi wyświetlane przez przeglądarkę.

0

Analizując nagłówki jest dobrym pomysłem, ale wyobrażam sobie, wszystko będzie się od nich jest to, że serwer nie odpowiada na żądanie co raz na jakiś czas.

Widzę, że to się dzieje przez cały czas w sieci. Obrazy nie zostaną załadowane, dopóki nie odświeżysz, css jest pomieszany itp. Wszystkie sytuacje są rozwiązywane przez odświeżenie.

sobie wyobrazić jeden sposób można „naprawić” to, być może, jest określenie w cs złożyć URL obrazu jakiegoś elementu. Następnie, po załadowaniu strony do javascript, pobierz ten element i sprawdź, czy obraz został załadowany. Jeśli nie, prześlij samą stronę.

wydaje się dość egzotyczne, ale to jedyny pomysł miałem ...

1

Nie wiem dlaczego, ale w moim przypadku, jeśli strona jest ładowana z akcji ze ścieżką, taką jak /ActionName, widzę ten problem.

Ale jeśli mogę ją zmienić (na przykład) do /reservedArea/ActionName lub /aPath/ActionName to działa:/

To szaleństwo ...

Powiązane problemy