2010-08-03 12 views
46

Cuando Chrome carga de mi página web, comprueba el servidor para las versiones actualizadas de los archivos antes de que se les muestra. (Imágenes/Javascript/CSS) Obtiene un 304 del servidor porque nunca edito javascript, css o imágenes externos.Chrome no almacena en caché las imágenes/js/css

Lo que quiero que haga, es mostrar las imágenes sin siquiera consultar el servidor.

Éstos son los encabezados:

Connection:keep-alive  
Date:Tue, 03 Aug 2010 21:39:32 GMT  
ETag:"2792c73-b1-48cd0909d96ed"  
Expires:Thu, 02 Sep 2010 21:39:32 GMT  
Server:Apache/Nginx/Varnish 

¿Cómo hago que no comprueba el servidor?

Respuesta

3

Si desea que Chrome guarde en caché sus archivos JS/CSS, el servidor deberá establecer un encabezado "Cache-Control". Debería verse así:

Cache-Control: max-age = 86400 (si desea almacenar recursos en caché por un día).

+0

Gracias por la respuesta.Aquí están las nuevas cabeceras: Cache-Control: max-age = 2592000 conexion: keep-alive Fecha: mar, 03 de Ago 2010 21:57:36 GMT ETag: "2792c73-b1-48cd0909d96ed" Expira: Jue, 02 Sep 2010 21:57:36 GMT Servidor: Apache/Nginx/Varnish pero todavía no funciona. Chrome todavía verifica modificaciones en el servidor. – Roger

+0

¿Cómo se asegura de que Chrome verifique las modificaciones en el servidor? ¿Estás usando algo como Fiddler? – Rahul

+0

@Rahul Ctrl-Shift-I en Chrome – Pacerier

77

¿Qué cabeceras de solicitud se parecen?

Chrome configurará max-age: 0 en el encabezado Cache-Control de la solicitud if you press Enter in the location bar. Si visita su página mediante un hipervínculo, debe usar la memoria caché, como se esperaba.

+2

Los encabezados de solicitud también están configurados en 'max-age: 0' para actualizar la página, lo que tiene sentido. Prueba usando enlaces .. – Haroldo

+0

@Jacob Krall, puedo revertir la pregunta. ¿Qué puedo hacer para evitar que Chrome ** siempre ** acceda al servidor de una url de imagen, incluso si visito la página usando un hipervínculo? He configurado todos los encabezados de control de caché, etc. pero Chrome nunca actualiza estas imágenes cuando navega a través del anclaje. IE y FF funcionan como se espera, los refresca cada vez. – thedk

+0

@thedk: ¿a qué ha configurado el encabezado de control de caché? –

58

Algo que también me consiguió fue ... He marcado "disable cache" en las herramientas de desarrollo. Imagínate.

+4

Esto me ayudó a resolver el mismo problema. En caso de que todos estén atascados, en las herramientas de desarrollo, haga clic en el icono de engranaje en la parte inferior derecha. – Kayla

+2

Y pensar que estaba a punto de escribir una página de publicación de imágenes, solo para exigir el control de la memoria caché. ¡¡GRACIAS!! – Archer

+5

Simplemente lancé mis brazos al aire exigiendo que Dios me castigara por mi estupidez. También tenía la memoria caché deshabilitada ... – TheBokiya

51

Wow! Estuve enfrentando el mismo problema por bastante tiempo.

Te diré por qué te enfrentaste a este problema. Tus encabezados están bien. Recibe un 304 debido a la forma en que está tratando de actualizar la página. Hay principalmente 3 formas:

  1. Presione intro en el cuadro de dirección. Observará que Chrome lee el archivo de la memoria caché primero y no va al servidor en absoluto.

  2. presione F5, esto sería verificar si el archivo se ha vuelto rancio (probablemente es la forma en que está actualizando)

  3. Presione Ctrl + F5, se trata de recarga incondicional de todos los recursos estáticos.

Básicamente, debe presionar la tecla de retorno en la barra de direcciones. Hazme saber si esto funciona. certificado

+1

Esto funcionó para mí, ¡pero no tengo idea de por qué! –

+2

Presione Intro en el cuadro de dirección aún se recarga. Copie la URL de pegado en la pestaña nueva o la misma y luego presione Enter no. – tarkeshwar

+0

Google Chrome versión 58.0.3029.110 - Al hacer clic en Entrar en la barra de direcciones no funcionó, pero copiar y pegar la url en una nueva pestaña, y luego Enter funcionó ... porque razones ... :) – gorjanz

18

Para mí, fue firmado por cuenta propia:

https://code.google.com/p/chromium/issues/detail?id=110649

Chrome no los recursos de caché de los servidores con el certificado autofirmado.

+0

Hay una muchas buenas respuestas en la página, pero este debe ser el primer paso crucial de cualquier página https – brianlmerritt

+0

. Estoy experimentando el mismo problema. Hay alguna solución para esto? –

+0

@TumainiMosha puede agregar un certificado autofirmado al almacenamiento de su navegador. Que se volverá verde y se almacenará en caché. – Vanuan

0

creo que busca

Cache-Control: immutable

+0

No es que actualmente solo los navegadores compatibles con esto sean Firefox y Edge. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#Browser_compatibility –

+0

chrome y safari también tienen soporte para ello. Verifique https://stackoverflow.com/questions/41936772/which-browsers-support-cache-control-immutable Creo que esta es la solución si no controla al cliente. –

Cuestiones relacionadas