2010-10-14 11 views

risposta

10

Per forzare l'aggiornamento se è già nella cache del browser. la v è probabilmente abbreviazione di versione.

7

Per espandere il Simon's correct answer ...

Spesso per risparmiare larghezza di banda, i fogli di stile (tra le altre risorse del sito) invia le intestazioni al browser che dicono che in caso di scadenza di un lungo periodo di tempo da oggi (spesso un anno). Inviano anche l'header 304 non modificato.

Questo è ottimo, ma cosa succede se qualcuno vuole aggiornare il foglio di stile? Se è stato richiesto come style.css e le richieste successive erano a style.css, l'utente finale non lo ricaricherebbe mai più (non per un anno comunque).

Per contrastare questo, è possibile aggiungere una stringa di query che cambia quando il file viene eseguito. Ad esempio, può essere fatto facilmente in PHP

<?php 
    $file = 'style.css'; 
?> 

<style type="text/css" rel="stylesheet" href="<?php echo $file . '?v=' . filemtime($file); ?>" /> 

Ora, quando il file viene aggiornato, i cambiamenti stringa di query e il file viene redownloaded a tutti gli utenti finali. Non verrà scaricato di nuovo fino a quando (a) il tempo di scadenza è scaduto o (b) la stringa di query cambia di nuovo.