Domanda

Quando stiamo sviluppando nuovi siti o testando le modifiche in nuovi che coinvolgono CSS dopo che il nuovo codice è stato impegnato e qualcuno va a controllare le modifiche vedono sempre una versione cache del vecchio CSS. Ciò sta causando molti problemi nei test perché le persone non sono mai sicure di avere sullo schermo i css più recenti (so che shift e clic su aggiorna cancellano questa cache ma non posso aspettarmi che gli utenti finali sappiano farlo). Quali sono le mie possibili soluzioni?

È stato utile?

Soluzione

Se stai servendo il tuo CSS da file statici (o qualsiasi cosa per cui la stringa di query non è importante), prova a variarlo per assicurarti che il browser faccia una nuova richiesta, poiché penserà che stia tirando un completamente diverso risorsa, quindi ad esempio:

" styles.css di token = 1234 " nel riferimento CSS nel markup e modifica il valore di "token" su ogni check-in CSS

Altri suggerimenti

Nel tuo ambiente di sviluppo, imposta l'intestazione Expires molto più in basso. Nel tuo ambiente di produzione, impostalo su un valore più alto, quindi impostalo su un valore basso circa una settimana prima di rilasciare.

Non è un'ottima soluzione, ma l'ho già fatto prima a livello di pagina aggiungendo una stringa di query alla fine della chiamata al file CSS:

 <link href="/css/global.css?id=3939" type="text/css" rel="stylesheet" />

Quindi randomizzerei il valore id in modo che carichi sempre un valore diverso al caricamento della pagina. Quindi toglierei questo codice prima di passare alla produzione. Suppongo che potresti anche estrarre il valore da un file di configurazione, in modo che debba essere caricato solo una volta per commit.

Risposte simili (un po 'più dettagliate) fornite per la versione JavaScript di questa domanda, che presenta lo stesso problema / soluzione

Assistenza per la memorizzazione nella cache JavaScript aggressiva

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top