2009-01-13 12 views
46

estaba navegando el html de mi sitio favorito ... ejem ... y vi esto en el marcado:¿Qué significa '?' hacer en un enlace Css?

<link href="/Content/all.min.css?d=20090107" rel="stylesheet" type="text/css" /> 

¿Qué hace "d = 20090107?"? Supongo que es una fecha de algún tipo, pero no estoy seguro de por qué está en el camino al archivo. ¿Algunas ideas?

+0

@ James Burgess: Un toque de Google recursividad. =) – Jronny

Respuesta

69

Eso está ahí para agregar unicidad al nombre del archivo, de modo que cuando cambien el archivo CSS, puedan cambiar el bit adicional para estar totalmente seguros de que cada cliente volverá a cargar el CSS en lugar de usar una versión en caché.

El servidor web ignorará el parámetro y servir /Content/all.min.css normalmente

Nota: Si bien es posible se genera dinámicamente la CSS, se trata de un lenguaje común para asegurar una recarga, y dado el parámetro es una fecha, parece bastante probable.


Editar: Podcast 38 mencionado esto ...

Hemos estado utilizando la fecha de vencimiento o Cache-Control de cabecera desde que lanzamos . Esto ahorra al explorador viajes de ida y vuelta cuando es poco frecuente cambiar elementos, como imágenes, javascript o css. La desventaja es que, cuando realmente cambie estos archivos, debe recordar cambiar los nombres de los archivos. Una parte de nuestro proceso de compilación ahora "etiquetas" estos archivos con un número de versión por lo que ya no tiene que acordarse de hacerlo manualmente.

+0

qué ingenioso. Eso significa que siempre engañamos al navegador que el archivo ha cambiado. – istrone

12

Es para "borrar el caché" cada vez que se actualiza el estilo. Especulo que quien sea responsable de esos estilos lo incrementa cada vez que hay un cambio. Esto se debe a que el navegador ve una URL diferente en el campo de estilo, por lo que tomará la última versión, aunque técnicamente se encuentre en el mismo lugar del servidor.

Como útilmente se señala en los comentarios, los archivos css a menudo tienen su vencimiento establecido en el futuro, este método es un buen paso lateral para caché de encabezados relacionados.

Es un truco muy útil.

+2

Sí, el servidor establecería un encabezado caduca para los archivos css en el futuro lejano para evitar solicitudes innecesarias que simplemente devolverían una respuesta no modificada. Por lo tanto, cuando el archivo realmente cambia, el servidor necesita ajustar el nombre del archivo para evitar que se golpee el caché del navegador. – CurtainDog

4

Hace que el navegador piense que es un archivo nuevo cada vez que actualiza su caché.

muy útil cuando sus hojas de estilo cambian regularmente ...

Cuestiones relacionadas