Nous développons un grand site Web, et toutes nos images et ressources sont dans Amazon S3. Nous utilisons également Cloudfront pour distribuer notre contenu à l'échelle mondiale. Ce que nous voulons, c'est de dire au navigateur Web des clients de mettre en cache nos fichiers, car lorsque nous les modifions, nous changeons également l'URL (Cloudfront ne reflète pas le changement pour 24 heures ailleurs).Lorsque vous utilisez Cloudfront, comment définir l'en-tête Expires par rapport à la date actuelle?
Nous utilisons actuellement ETags mais ce n'est pas optimal car le client doit toujours faire la demande pour vérifier si la ressource a changé. Une solution serait l'en-tête Expires, mais nous n'avons pas trouvé le moyen de la définir par rapport à la date actuelle dans la configuration d'Apache pour S3, et nous ne pouvons pas mettre à jour tout le contenu régulièrement, car c'est à peu près. Nous aurions donc besoin d'une option de configuration qui définit l'en-tête Expires à une date par rapport à la date actuelle pour tout le contenu.
Une autre solution serait de définir Cache-Control: max-age à une certaine valeur. Est-ce que ça marche? Est-il accepté par les principaux navigateurs? Vais-je détruire certains algorithmes de mise en cache avec ceci? Pourquoi YSlow recommande-t-il de définir l'en-tête Expires mais pas Cache-Control: max-age?
Avez-vous d'autres recommandations? Nous compressons CSS et JS, en utilisant Sprites où c'est plausible, en définissant des en-têtes Expires et des ETags où c'est possible, et nous allons bientôt compresser nos images avec Yahoo Compression Tool et gzipping Output.
Salut Paul, j'ai le même problème, avez-vous géré une meilleure solution? – ic3
Non, AFAIK il n'y a pas de meilleure solution. –
@PaulWeber pouvez-vous partager un aperçu de ce que vous avez fait J'ai aussi besoin de faire le même genre de chose – msonowal