2011-12-23 11 views
6

Probando mi aplicación Rails 3.1 en modo de producción (Debian 6, Ruby 1.9.2, Pasajero). Lo probé usando IE 6 & IE 7 y algunos de los activos no están cargados correctamente. Todo funciona bien en modo dev.Rails 3.1, canalización de activos e IE 6 y 7 en modo de producción: algunos CSS y js no se cargan correctamente

Algunos css & js no se cargan correctamente, se están compilando todos los archivos. Específicamente, tengo problemas con el menú desplegable (menú jquery superfish). Todo funciona bien en IE8, IE 9, Firefox, Chrome, ambos en desarrollo de producción &. El problema solo aparece en IE 6 & 7 en Producción.

Intentó borrar el caché (tanto en el navegador como en el servidor). Recompilación de activos. Nada ve de ayuda.

¿Alguien se encontró con algo como ese?

Respuesta

9

Para cualquier persona que tenga el mismo problema aquí es la raíz del problema de Soporte de MS (http://support.microsoft.com/kb/262161):

Este problema se produce porque se cumplen en Internet Explorer las siguientes condiciones: Todas las etiquetas de estilo después de la primera 31 etiquetas de estilo son no aplicadas. Todas las reglas de estilo después de las primeras 4.095 reglas no son aplicadas. En páginas que usan la regla @import para importar continuamente hojas de estilo externas que importan otras hojas de estilo, las hojas de estilo que tienen más de tres niveles de profundidad se ignoran.

ARRRRRRRRRRRRRRR !!! Maté un par de días tratando de encontrar un problema con mi código, cuando el incumplimiento de los estándares de MS nuevamente. # @) (! @ #)

Esto me llevó a investigar más y, para mi sorpresa, IE6 & IE7 parece procesar solo las primeras 2025 líneas en un gran archivo CSS: el resto se ignora. (Al principio pensé que era una serie de limitaciones de líneas, pero resulta que eran 4095 reglas, que estaban en las 2025 líneas). Simplemente parece estúpido. Los nuevos IE y Chrome, Safari, Opera y FF no parecen tener un problema con esto. Terminé dividiendo mi CSS en application-1.css & application-2.css para mantener el número de archivos en producción al mínimo, pero aún así es muy molesto.

+1

¡Oh! Lo siento por tener que soportar IE <8. –

+0

Sí, aproximadamente el 20% de nuestros usuarios, por lo que no puedo ignorarlo :( – konung

1

¿Está habilitada la depuración? es decir, ¿está dividida su javascript en el modo de desarrollo?

Intente desactivarlo para que el inventario de activos combine todo en el mismo archivo y vea si todavía funciona en modo de desarrollo.

Tuve algunos problemas cuando los activos se fusionaron y faltaba un punto y coma en uno de los archivos. Puede ser una molestia encontrarlo, pero podría suceder. Otros mejores navegadores los procesan, pero IE solo mezcla cosas.

+0

Gracias por el puntero pero eso no fue todo. Vea mi respuesta si está interesado. – konung

1

Hay un gran módulo CssSplitter que la gente está utilizando para dividir archivos css por ejemplo, y se ha adaptado para ser utilizado desde la cartera de activos. https://gist.github.com/2398394

Cuestiones relacionadas