2008-09-18 8 views
6

Estoy trabajando en una aplicación web, y de vez en cuando nos encontramos con situaciones en las que las páginas se cargarán sin aplicar CSS. Este problema ha aparecido en IE6, IE7, Safari 3 y FF3.¿Qué puede causar que CSS no se cargue ocasionalmente en todos los navegadores?

Una actualización de página siempre solucionará el problema.

Hay 3 archivos CSS cargados, todo dentro del mismo bloque de estilo utilizando @import:

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

En cualquier situación en la que nos tomamos el tiempo para examinar el código fuente HTML, no hay nada fuera de lo normal. Los registros de acceso también parecen normales: obtenemos respuestas HTTP 304 para los archivos CSS estáticos cada vez que se solicitan, y una respuesta HTTP 200 para nuestro CSS generado.

El tipo de mimeet es text/css para los archivos css y el css generado. Estamos utilizando un servidor iPlanet, que envía solicitudes a un servidor Tomcat.

davebug preguntó:

¿Es siempre el mismo archivo CSS no se carga, o es el problema con todos ellos, de manera uniforme?

Ninguno de los archivos CSS se carga. Cualquier estilo definido en el HTML funciona bien, pero nada en ninguno de los archivos CSS funciona cuando esto sucede.

+0

¿Es siempre el mismo archivo css el que no se está cargando, o es el problema con todos ellos, de manera uniforme? –

Respuesta

4

que he tenido una cosa similar sucede que yo era capaz de solucionar mediante la inclusión de una hoja de estilo de base en primer lugar utilizando los "rel enlace" método en lugar de "@import". es decir, mueva su inclusión de [archivo css base] a:

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

y póngalo antes que los demás.

+0

Realicé este cambio hace algunas semanas, y hasta ahora no hemos vuelto a ver el problema. Sin embargo, sucede de manera tan aleatoria que es difícil decir si está arreglado o no. – Illandril

+0

Esto no funcionó para mí. Solo pude deshacerme de esto después de mover los archivos CSS a un servidor web externo (que no sea Tomcat). – weekens

0

Utilice ab o httperf o curl o algo para cargar repetidamente los archivos CSS desde el servidor web. Tal vez no está sirviendo constantemente las páginas.

3

si sucede lo suficiente como para poder verlo en su navegador, intente instalar la extensión de los encabezados http Live Firefox o la extensión Tamper Data, y mire los encabezados de respuesta tal como los ve el navegador.

0

Examinar los encabezados es una buena idea, pero me imagino que todo lo que aprenderá de ellos es que el servidor no responde a una solicitud de vez en cuando.

Veo que esto sucede todo el tiempo en la red. Las imágenes no se cargarán hasta que actualice, css esté en mal estado, etc. Todas las situaciones se resuelven mediante una actualización.

Imagino que una forma en que podría "arreglar" esto, tal vez, es especificando en su archivo cs una url para una imagen de algún elemento. Luego, al cargar la página en javascript, obtenga ese elemento y vea si esa imagen se ha cargado. De lo contrario, haz que la página se vuelva a cargar.

parece bastante exótico, pero esa es la única idea que tenía ...

1

No sé por qué, pero en mi caso si la página se carga desde una acción con la ruta como /ActionName, veo este problema.

Pero si lo cambio (por ejemplo) a /reservedArea/ActionName o /aPath/ActionName funciona:/

Es una locura ...

Cuestiones relacionadas