2010-07-31 35 views
17

Si me quedo una auditoría en mis sitios con Google Chrome, me sale este mensaje en la memoria caché del navegador sección apalancamiento:Google Chrome auditoría sobre el almacenamiento en caché

Los siguientes recursos están perdiendo una caducidad caché. Recursos que no se especifica un vencimiento no pueden ser almacenan en caché por los navegadores:

una lista de todas las imágenes sigue. Me sale un aviso similar en apalancamiento proxy de caché:

considerar la adición de un "Cache-Control: pública" de cabecera a los recursos siguientes:

Además de imágenes, que también consigue una aviso sobre archivos HTML, CSS y JavaScript:

Los siguientes recursos son explícitamente no almacenados en caché. Considere haciéndolos cacheable si es posible:

Su divertido porque he trabajado duro para almacenar en caché todos los contenidos estáticos (a excepción de las imágenes, en el que acaba de dejar la configuración predeterminada de Apache). Firefox sí almacena todos estos elementos en caché.

¿Hay algo que deba mejorar en mis encabezados HTTP?


Aquí está el conjunto de encabezado completo de algunos elementos como cargados después de quitar el caché del navegador. Las imágenes usan configuraciones predeterminadas que realmente no revisé antes, el resto debe almacenarse en caché durante tres horas. Puedo establecer encabezados con .htaccess y PHP.

PNG

HTTP/1.1 200 OK 
Date: Sat, 31 Jul 2010 12:46:14 GMT 
Server: Apache 
Last-Modified: Thu, 18 Mar 2010 21:40:54 GMT 
Etag: "c48024-230-4821a15d6c580" 
Accept-Ranges: bytes 
Content-Length: 560 
Keep-Alive: timeout=4 
Connection: Keep-Alive 
Content-Type: image/png 

HTML

HTTP/1.1 200 OK 
Date: Sat, 31 Jul 2010 12:46:13 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.11 
Expires: Sat, 31 Jul 2010 15:46:13 GMT 
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Last-Modified: Wed, 24 Mar 2010 20:30:36 GMT 
Keep-Alive: timeout=4 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=ISO-8859-15 

CSS

HTTP/1.1 200 OK 
Date: Sat, 31 Jul 2010 12:48:21 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.11 
Expires: Sat, 31 Jul 2010 15:48:21 GMT 
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT 
Keep-Alive: timeout=4 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: text/css 

JavaScript

HTTP/1.1 200 OK 
Date: Sat, 31 Jul 2010 12:48:21 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.11 
Expires: Sat, 31 Jul 2010 15:48:21 GMT 
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT 
Keep-Alive: timeout=4 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: application/x-javascript 

actualización

He probado la sugerencia de Jumby y puse de mi CSS caduca a 1 año:

Cache-Control:max-age=31536000, s-maxage=31536000, must-revalidate, proxy-revalidate 
Connection:Keep-Alive 
Content-Encoding:gzip 
Content-Length:4198 
Content-Type:text/css 
Date:Mon, 02 Aug 2010 20:48:56 GMT 
Expires:Tue, 02 Aug 2011 20:48:56 GMT 
Keep-Alive:timeout=5, max=99 
Last-Modified:Thu, 18 Mar 2010 20:40:12 GMT 
Server:Apache/2.2.14 (Win32) PHP/5.3.1 
Vary:Accept-Encoding 
X-Powered-By:PHP/5.3.1 

Sin embargo, Chrome todavía reclama "explícitamente no aplicables a la caché".

+0

Acabo de recibir un problema similar, haga lo que haga, la auditoría de Chrome sigue molestando. – axkibe

Respuesta

4

3 horas de caducidad podría no ser suficiente "tiempo" para las cosas de velocidad lenta y de página, y es posible que se quejen. Lo he visto con contenido estático en mis sitios con una caducidad de 4 horas & yslow (no he intentado con las cosas de google).

La mayoría de ellos quieren contenido estático versionado con tiempos de caducidad LARGOS (como 1 año); vea here

+0

He intentado con tu sugerencia (ver mi publicación editada) pero Chrome aún se queja. Estoy tentado de ignorarlo y usar otra herramienta. Incluso Chrome carga los documentos desde caché cuando visito la página más tarde. –

+1

Intenta eliminar/modificar encabezados para ver si puedes determinar cuál es el causante. Lo intentaría con Cache-Control: public. Además, ingrese a redbot.org e ingrese una URL para su contenido estático. –

+3

http://redbot.org es una gran herramienta (y también explica por qué "Cache-Control: public" es innecesario en la mayoría de los casos). Necesito ver más de cerca el almacenamiento en caché de contenido estático, pero creo que la función de auditoría de Chrome tiene errores. –

2

El problema es la parte "debe revalidar" de su directiva de control de caché. Deshazte de eso, y deberías ser bueno para ir.

+0

Sí, pero ¿por qué es un problema? ¿El mensaje de Chrome es engañoso? ¿incorrecto? ¿Subtly correcto? –

+0

Puedo verificar que la eliminación de 'debe-revalidar' detiene la auditoría de Chrome de quejarse de que esos puntos finales son descartables. Esto no parece tener sentido dado el comportamiento descrito en el RFC. Me pregunto cómo maneja Chrome 'debe-revalidar' ... – wprl

0

Acabo de recibir un problema similar, descubrí que la misma configuración y el código producen una advertencia de auditoría de Chrome cuando prueban en mi servidor de prueba en 127.0.0.1, pero no en el servidor real con un nombre DNS real.

Cuestiones relacionadas