Estoy tratando de hacer algo que pensé que sería bastante simple. Consiga que IIS 7 les diga a los clientes que pueden almacenar en caché todas las imágenes de mi sitio durante un tiempo determinado, digamos 24 horas.
Probé el paso en http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx pero fue en vano. Todavía recibo solicitudes que van al servidor y se devuelven 304.
¿Alguien tiene una forma de hacer esto? Tengo un sitio gráficamente intensivo y mis usuarios están siendo golpeados (también mi servidor) cada vez que solicitan una página. Curiosamente, las imágenes parecen tener "Cache-Control private, max-age = 3600" apareciendo en Firebug, pero el navegador todavía las solicita cuando presiono F5.
Cache-Control
(max-age
) para diferentes tipos de mime o extensiones de archivos?Eso no es cierto Jeff.
Simplemente tiene que seleccionar una carpeta dentro de la interfaz de usuario de IIS 7 Manager (por ejemplo, Imágenes o evento, la carpeta de la aplicación web predeterminada) y luego hacer clic en "Encabezados de respuesta HTTP". Luego tienes que hacer clic en "Establecer encabezado común ..." en el panel derecho y seleccionar "Expire Web content". Allí puede configurar fácilmente una edad máxima de 24 horas seleccionando "Después:", ingresando "24" en el cuadro de texto y seleccionando "Horas" en el cuadro combinado.
Su primer párrafo con respecto a la entrada web.config es correcto. Agregaría el atributo cacheControlCustom para establecer el encabezado de control de caché en "público" o lo que sea necesario en ese caso.
Por supuesto, puede lograr lo mismo proporcionando entradas (o archivos) web.config según sea necesario.
Editar: eliminó una oración confusa :)
fuente
Cache-Control
(max-age
) para diferentes tipos de mime o extensiones de archivos?yo uso esto
almacenar en caché el contenido estático durante 500 días con el encabezado de control de caché público.
fuente
El F5 Refresh tiene la semántica de "por favor vuelva a cargar el HTML actual Y sus dependencias directas". Por lo tanto, debe esperar ver cualquier recurso imgs, css y js directamente referenciado por el HTML también siendo recuperado. Por supuesto, un 304 es una respuesta aceptable a esto, pero la actualización F5 implica que el navegador realizará la solicitud en lugar de confiar en el contenido de la caché nuevo.
En su lugar, intente simplemente navegar a otro lugar y luego navegar hacia atrás.
Puede forzar la actualización, más allá de 304, manteniendo presionada la tecla ctrl mientras presiona f5 en la mayoría de los navegadores.
fuente
Para almacenar en caché el contenido estático durante 365 días con el encabezado de control de caché público , IIS se puede configurar con lo siguiente
Esto se traducirá en un encabezado como este:
Tenga en cuenta que max-age es un delta en segundos, expresado por un entero positivo de 32 bits como se indica en las secciones 14.9.3 y 14.9.4 de RFC 2616 . Esto representa un valor máximo de 2 ^ 31 o 2,147,483,648 segundos (más de 68 años). Sin embargo, para garantizar mejor la compatibilidad entre clientes y servidores, adoptamos un máximo recomendado de 365 días (un año).
Como se mencionó en otras respuestas, puede usar estas directivas también en web.config de su sitio para todo el contenido estático. Como alternativa, puede usarlo solo para contenidos en una ubicación específica (en el ejemplo, caché pública de 30 días para el contenido de la carpeta "cdn"):
fuente
hay una manera fácil: 1. usando web.config del sitio web 2. en la sección "staticContent" elimine la extensión de archivo específica y agregue mimeMap 3. agregue "clientCache"
fuente