2010-02-04 10 views
6

He visto bastantes sitios web haciendo esto (incluso stackoverflow) dentro de su fuente HTML generada, accediendo a una versión específica de un archivo CSS o JavaScript con parámetros GET. ¿De qué sirve?¿Por qué algunos sitios web acceden a versiones específicas de un archivo CSS o JavaScript utilizando parámetros GET?

Ejemplo:

<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6230"> 
<script type="text/javascript" 
     src="http://sstatic.net/so/js/master.js?v=6180"></script> 

¿Es simplemente una manera de coherencia o mejor práctica? ¿Es simplemente para que los clientes con versiones viejas en caché en sus navegadores se vean obligados a actualizar su versión obsoleta?

Respuesta

4

¿Es simplemente para que los clientes con versiones viejas en caché en sus navegadores se vean obligados a actualizar su versión desactualizada?

Exactamente.

Salida this question para obtener más información, enlaces y más discusión sobre cómo y this question desbordamiento de pila en sí emplea el método.

+0

Muchas gracias por la información. Supongo que acerté: P. Nuevamente, una buena práctica parece obtener la revisión del repositorio para el número de versión. Estoy usando git, tal vez git describa lo haría, pero me pregunto si todavía hay una forma popular de generar el número sin demasiado cambio de código (cambiar la versión cada vez que se modifique el archivo css/js sería un poco tedioso) . Estoy pensando en usar la fecha de modificación del archivo, tal vez? –

+0

@Steven Rosato Buena pregunta. No sé de ninguna manera, por supuesto podría usar el número de revisión general, pero eso dispararía la recarga con bastante frecuencia. De todos modos, si puede usar la reescritura de URL, puede hacer que cada punto '/ 12345/style.css' coincida con el mismo archivo' style.css', ahorrándole la molestia de crear el directorio real al registrarse. De esa manera, lo haría solo tiene que preocuparse por cómo llamar a la hoja de estilos. Tal vez vale la pena una pregunta extra. –

1

Sí, es para estallar cachés de navegador y proxy. No hay otro propósito.

Bueno, teóricamente puedes generar dinámicamente javascript y luego necesitarás esos parámetros. JSONP funciona de esa manera, por ejemplo. Pero principalmente es para invalidar cachés.

0

Es forzar al navegador obtener la nueva versión y no simplemente usar una versión almacenada en caché. Eso es.

0

Esto se utiliza con vencimiento futuro lejano para CSS/Javascript. Esto permite que el sitio indique a su navegador que guarde en caché los datos durante un tiempo muy prolongado (por ejemplo, 5 años). Cuando se actualiza css o js, ​​el número de versión cambiará, lo que forzará la caché.

Los navegadores almacenan en caché el css/js por la cadena de consulta completa.

Cuestiones relacionadas