2009-05-11 7 views
7

L'applicazione Web su cui sto lavorando serve immagini con URL come /image?name=a.gif. Le pagine si caricano lentamente in parte perché i browser non memorizzano nella cache le immagini.Memorizzazione nella cache dagli URL con una stringa di query

Esiste una combinazione di intestazioni http che persuaderà IE a memorizzare nella cache le immagini anche se l'URL contiene una stringa di query? Sto cercando di evitare che il browser faccia richieste non necessarie (comprese le richieste di tipo if-modified)

Sono felice con una soluzione che funziona solo con IE (6+). Inoltre, so che posso evitare il problema con la riscrittura degli URL - Sono solo interessato a capire meglio il caching del browser.

Grazie

risposta

4

Impostare il expires header nel vostro web server per una data lontana.

+4

Per quello che vale, "Cache-Control: max-age = #" è la nuova versione snazzier di Expires, ma funzionerà. Vedi http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 –

8

Si ritiene comunemente che molti browser meno recenti (incluso IE6) e alcune versioni precedenti di cache come Squid non memorizzino nella cache alcun file a cui è associata una QueryString, indipendentemente dalla data di scadenza.

La più robusta alternativa alla querystring delle versioni è quello di mettere informazioni sulla versione nel percorso, come ad esempio:

site/static/23212903/css/bundle.css 

Oppure:

site/images/logo.r23212903.png 

Per di più, ecco una great article sull'impostazione correttamente le intestazioni di cache di Sergey Chernyshev.