Ho un'applicazione di scrittura basata su Web con un server Web personalizzato e sto riscontrando problemi con i browser Webkit che non memorizzano nella cache immagini, fogli di stile e javascript.Webkit non viene memorizzato nella cache quando sono disponibili entrambe le intestazioni max-age e Last-Modified
L'ho rintracciato in una relazione tra Cache-Control: max-age e Last-Modified. Se entrambi vengono specificati, il webkit sembra ignorare l'intestazione max-age e verificare se il file è stato modificato OGNI volta che la risorsa viene utilizzata. Il sito ha un iframe nella prima pagina e risulta in fogli di stile, ecc. Che vengono richiesti due volte in un secondo!
Se si rimuove l'ultima modifica, i file non verranno richiesti nuovamente fino al giorno successivo; tuttavia, le richieste del giorno successivo non saranno più modificate se modificate, dal momento che richiedono al server di inviare nuovamente tutto anziché solo un'intestazione 304.
Su IE9, Firefox 10.0 e Opera 11.61 alle cache del browser in modo corretto e non richiedere nuovamente le immagini, solo il codice HTML, che ha una Cache-Control: l'attributo di intestazione no-cache.
Su Chrome 16.0.912.77 me Safari 5.1.2 (7534.52.7) viene eseguita una richiesta condizionale per ogni immagine su ogni pagina, ogni volta. Il server risponde con un'intestazione 304, che contiene ancora l'attributo max-age, ma entrambi continuano a richiedere.
Un colpo di testa esempio HTTP sto inviando con una risposta è:
HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 15:12:12 GMT
Cache-Control: max-age=86400
Content-length: 708
Content-type: image/gif
Last-Modified: Fri, 6 Jan 2012 14:39:07 GMT
Server: Webspring
Qualcuno ha qualche suggerimento su come posso ottenere questi browser a tutti rispettare i miei intestazioni di cache?
Tutti i browser sono in esecuzione su Win7 Pro x64 e l'intestazione HTTP sopra è l'output non elaborato di Fiddler, quindi è esattamente ciò che il browser sta ricevendo.
Nota: avevo già fatto una domanda precedente prima di scoprire che si trattava di un'interazione tra i campi dell'intestazione. Ho eliminato la domanda precedente poiché non era più accurata.
Grazie
Mog
Hai mai diagnosticato la causa o trovato una soluzione a questo problema? Stiamo osservando ripetute richieste GET condizionali su ogni immagine su Mac OS X 10.8.2 con browser basati su webkit (Chrome/Safari), ma Firefox memorizza correttamente nella cache. –
In realtà rimuoviamo l'attributo modificato per ultimo per Chrome e Safari, in modo che almeno un po 'di cache. Non ho mai trovato una soluzione migliore mi dispiace. – Mog0