Stiamo sviluppando un grande sito Web e tutte le nostre immagini e risorse sono in Amazon S3. Stiamo anche utilizzando Cloudfront per distribuire il nostro contenuto a livello globale. Quello che vogliamo fare è dire al browser web del client di memorizzare nella cache i nostri file, perché quando li cambiamo, cambieremo anche l'URL (Cloudfront non riflette la modifica per 24 ore altrove).Quando si utilizza Cloudfront, come si può impostare l'intestazione di scadenza rispetto alla data corrente?
Attualmente stiamo utilizzando ETags ma questo non è ottimale becaue il Cliente deve ancora fare la richiesta per verificare se la risorsa è cambiato.
Una soluzione sarebbe l'intestazione Expires, ma non abbiamo trovato un modo per impostarlo relativamente alla data corrente, come possibile nella configurazione di Apache per S3, e non possiamo aggiornare regolarmente tutto il contenuto, perché è praticamente. Pertanto, avremmo bisogno di un'opzione di configurazione che imposta l'intestazione di scadenza su una data relativa alla data corrente per tutto il contenuto.
Un'altra soluzione potrebbe essere quella di impostare Cache-Control: max-age ad un certo valore. funziona? È accettato dai principali browser? Distruggerò alcuni algoritmi di caching con questo? Perché YSlow consiglia di impostare l'intestazione Expires ma non Cache-Control: max-age?
Altre eventuali raccomandazioni? Stiamo comprimendo CSS e JS, usando Sprites dove è plausibile, impostando le intestazioni Expires e gli ETags dove è possibile, e presto comprimeremo le nostre immagini con lo strumento di compressione di Yahoo e l'output di gzipping.
Ciao Paul, ho lo stesso problema, hai gestito una soluzione migliore? – ic3
No, AFAIK non esiste una soluzione migliore. –
@PaulWeber è possibile condividere un succo di quello che avete fatto Ho anche bisogno di fare simile genere di cose – msonowal