2008-08-22 10 views
9

Tengo una aplicación de formas web ASP.NET (3.5 SP1) en la que estoy trabajando e intento de habilitar gzip fpr HTML y CSS que viene por la tubería. Estoy usando this implementation (y probé algunos otros que se conectan a Application_BeginRequest), y parece estar corrompiendo el archivo CSS externo que usan las páginas, pero de forma intermitente ... de repente todos los estilos desaparecerán en una actualización de página, manténgase así por un tiempo, y luego de repente empezar a trabajar de nuevo.¿Por qué la compresión ASP.NET gzip está corrompiendo CSS?

Tanto IE7 como FF3 muestran este comportamiento. Al ver el CSS utilizando la barra de herramientas del desarrollador web, devuelve jibberish. El encabezado de control de caché aparece como "privado", pero no sé lo suficiente como para saber si eso es un factor contribuyente o no.

Además, esto se ejecuta en el servidor de desarrollo ASP.NET. Tal vez estaría bien con IIS, pero estoy desarrollando en XP y sería IIS5.

Respuesta

5

¿Solo se corrompen los archivos CSS? ¿Los archivos JS (o cualquier otro archivo de texto estático) salen bien?

¿También puede duplicar el comportamiento si navega directamente al archivo CSS?

sólo he habilita la compresión en IIS del servidor de Windows 2003 utilizando este enfoque:

  1. IIS → Sitios Web → pestaña Propiedades → Servicio, marcar ambas casillas
  2. IIS → Extensiones de servicio Web → clic derecho, Agregar nuevo
     
        Name 
         Http Compression 
        Required Files 
         %systemroot%\system32\inetsrv\gzip.dll
  3. IIS → Haga clic derecho en el nodo superior, Internet Information Server, compruebe Habilitar directa de archivos de metabase
  4. de copia de seguridad y editar %systemroot%\system32\inetsrv\MetaBase.xml
    1. Encuentra Location ="/LM/W3SVC/Filters/Compression/gzip"
      • Añadir png, css, js y otras extensiones de archivo estático a HcFileExtensions
      • Añadir aspx y cualesquiera otras extensiones ejecutables a HcScriptFileExtensions
      • Guardar
  5. Reiniciar IIS (ejecutar iisreset)

Si tiene un servidor Windows 2003/2008 para jugar, puede probar ese enfoque.

+1

IE7/8 estaba descargando archivos zip corruptos mientras Firefox/Chrome/Opera no. Esto parecía ser porque IIS6 estaba comprimiendo gzip el archivo zip, lo que molestaría a IE. Su solución solucionó mi problema e IIS ya no intenta volver a comprimir los archivos comprimidos. –

0

Si va a implementar en IIS 6 o IIS 7, solo use la compresión IIS incorporada. Lo estamos usando en sitios de producción para comprimir HTML, CSS y JavaScript sin errores. También almacena en caché la versión comprimida en el servidor, por lo que el golpe de compresión solo se realiza una vez.

+0

Lamentablemente, el uso de la configuración predeterminada parece romper los archivos zip en IE7/8. Como resultado, por defecto, IIS quiere intentar comprimir archivos zip, lo cual es bastante tonto. –

Cuestiones relacionadas