asp.net mvc - ¿Cómo activo la compresión gzip cuando uso MVC3 en IIS7?
asp.net-mvc asp.net-mvc-3 (3)
La compresión está habilitada / deshabilitada en el nivel del servidor. Vea el módulo de compresión IIS en la consola de administración iis.
Aquí están las instrucciones para IIS desde el sitio de Microsoft.
¿Alguien sabe cómo habilitar la compresión gzip en MVC 3? Estoy usando IIS7.
Resultado de la auditoría de Google Chrome:
- Habilitar compresión gzip (4)
- Comprimir los siguientes recursos con gzip podría reducir su tamaño de transferencia en aproximadamente dos tercios (~ 92.23KB):
- / mydomain / podría guardar ~ 1.53KB
- jquery-1.4.4.min.js podría guardar ~ 51.35KB
- Cufon.js podría ahorrar ~ 11.89KB
- Futura.js podría ahorrar ~ 27.46KB
Podrías hacer esto en código si prefieres hacer eso. Haría un controlador de base del que cada control hereda y lo decoraría con este atributo a continuación.
public class CompressAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(encodingsAccepted)) return;
encodingsAccepted = encodingsAccepted.ToLowerInvariant();
var response = filterContext.HttpContext.Response;
if (encodingsAccepted.Contains("deflate"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
else if (encodingsAccepted.Contains("gzip"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
}
}
Puede configurar la compresión a través de su archivo web.config
la siguiente manera:
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
Puede encontrar documentación de este elemento de configuración en iis.net/ConfigReference . Esto es el equivalente de:
- Apertura de Internet Information Services (Administrador de IIS)
- Navegando a través de la vista de árbol de la izquierda hasta llegar al directorio virtual que desea modificar
- Seleccionar el directorio virtual apropiado para que el título del panel derecho se convierta en el nombre de dicho directorio virtual.
- Elegir "Compresión" en "IIS" en el panel derecho
- Marque ambas opciones y elija "Aplicar" en "Acciones" en el extremo derecho.
Nota: (Como se señala en los comentarios) doDynamicCompression="true"
asegurarse de que Http Dynamic Compression esté instalado; de lo contrario, establecer doDynamicCompression="true"
no tendrá ningún efecto. La forma más rápida de hacerlo es:
- Inicio> Tipo de características
optionalfeatures
(esta es la forma más rápida de acceder a la ventana "Activar o desactivar las características de Windows") - Vaya a Servicios de Internet Information> Servicios de World Wide Web> Características de rendimiento en la vista de árbol de "Características de Windows"
- Asegúrese de que la "Compresión dinámica de contenido" esté marcada
- Haga clic en "Aceptar" y espere mientras Windows instala el componente