2009-10-23 30 views

Respuesta

27

Para evitar el almacenamiento en caché de CSS.
Si el sitio web actualiza su CSS, actualizan el ver a un número superior, por lo tanto, el navegador se ve obligado a obtener un nuevo archivo y no usar la versión anterior en caché.
De lo contrario, un navegador puede obtener un nuevo código HTML y CSS antiguo y algunos elementos del sitio web pueden parecer rotos.

+2

Como nota adicional, puede agregar la marca de tiempo de la solicitud en lugar de un número de versión y omitir por completo el almacenamiento en caché de la hoja de estilo. Esto aumenta el procesamiento, pero reduce el mantenimiento del código. –

+0

De acuerdo con Jim, utilizo la marca de tiempo del archivo personalmente y es mucho más fácil de usar. –

+0

¿No entiendo, o está sugiriendo usar marcas de tiempo para evitar la caché, que se introdujo para reducir la carga del servidor, con el fin de disminuir _programación_? – Kheldar

4

El propósito de? Ver = 1 es parametrizar el archivo css, por lo que cuando publican un nuevo archivo style.css suben la versión y obliga al cliente a descargar el nuevo archivo, en lugar de extraerlo del caché versión.

9

Adición hace que la mirada petición HTTP como una consulta GET con los parámetros, y los navegadores de buen comportamiento (y proxies) se negará a almacenar en caché las consultas con parámetros . Por supuesto, los navegadores de buen comportamiento (y los proxies) también deberían prestar atención a los encabezados de respuesta 'Cache-control: no-cache', 'Expires', 'Last-Modified' y 'ETag' (todos los cuales se agregaron a HTTP para especificar el comportamiento correcto de almacenamiento en caché).

El método '? Ver = 1' es una forma costosa de forzar el comportamiento cuando el desarrollador del sitio no sabe cómo (o es demasiado flojo) implementar los encabezados de respuesta correctos. En particular, significa que cada solicitud de página va a obligar a solicitar ese archivo CSS, aunque, en la práctica, los archivos CSS cambian raramente, si es que lo hacen.

Mi recomendacion? No lo hagas.

+0

"significa que cada solicitud de página va a forzar la solicitud de ese archivo CSS" - no, no lo hace. ¿Por qué lo haría? ¿Simplemente porque se usa la parte de consulta del recurso? – bzlm

+2

¿No me creen? Pruébalo con una variedad de navegadores. –

+0

¿Es solo porque el navegador no almacena en caché una consulta parametrizada o podemos insertar un número de versión en CSS y podemos llamarlo por el número, p. ver = 1, ver = 2, ver = 3, o llamar a una versión anterior, mientras que existe una más nueva? – bjan

1

IMO una forma mejor de hacer esto sería incluir un hash generado fuera del tamaño del archivo o una suma de comprobación según el contenido del archivo o la fecha de la última modificación. De esta manera, no tiene que actualizar un número de versión y simplemente dejar que el número se elimine de las propiedades cambiantes del archivo.

2

Si está desarrollando una aplicación web en HTML y CSS o en cualquier otra tecnología, y está utilizando algunos archivos CSS o JS externos, es posible que note algo que en algunos casos si realizó algún cambio en su .css existente o archivos .js, los navegadores no reflejan los cambios de inmediato.

Lo que sucede en ese caso es que el navegador no descarga una copia nueva de la última versión de los archivos .css y .js, sino que usa los archivos almacenados en su caché local. Como resultado, los cambios que realizó recientemente no son visibles para usted.

<link rel="stylesheet" href="style.css?v=1.1"> 

El caso anterior cuando se carga la página web del navegador tratará "style.css" como un archivo diferente junto con "? V = 1,1". Por lo tanto, el navegador se ve obligado a descargar una nueva copia de la hoja de estilo o el archivo de script.