Lorsque vous utilisez CloudFront, comment peut-on définir l'en-tête Expires par rapport à la date actuelle?

StackOverflow https://stackoverflow.com/questions/4760438

Question

Nous développons un grand site Web, et toutes nos images et ressources sont en Amazon S3. Nous utilisons également CloudFront pour distribuer globalement notre contenu. Ce que nous voulons à, est de dire au navigateur Web Clients pour mettre en cache nos fichiers, parce que quand nous les changeons, nous allons également changer l'URL (CloudFront ne reflète pas le changement de 24 heures ailleurs).

Nous utilisons actuellement ETags mais ce n'est pas optimale becaue le client doit encore faire la demande de vérifier si la ressource a changé.

Une solution serait l'en-tête Expires, mais nous ne pas trouver un moyen de le mettre par rapport à la date actuelle comme possible dans la configuration Apache pour S3, et nous ne pouvons pas mettre à jour tout le contenu régulièrement, car il est à peu près. Donc, nous aurions besoin d'une option de configuration qui définit l'en-tête Expires à une date par rapport à la date actuelle de tout le contenu.

Une autre solution serait de mettre Cache-Control: max-age à une certaine valeur. Est-ce que ça marche? Est-il accepté par les principaux navigateurs? Vais-je détruire une mise en cache des algorithmes avec cela? Pourquoi ne recommande YSlow pour définir l'en-tête Expires mais pas Cache-Control: max-age

Les autres recommandations? Nous compressez CSS et JS, en utilisant Sprites où il est plausible, les en-têtes et paramètre Expire ETags où il est possible, et bientôt compresser nos images avec l'outil de compression Yahoo et gzipping sortie.

Était-ce utile?

La solution

Nous avons fait des recherches sur nous-même. On dirait que l'en-tête Cache-Control ne aide à dire CloudFront ou un proxy pour définir un valide en-tête Expires, mais seulement parfois ...

Nous sommes en train d'écrire un Cron Job pour mettre à jour tous les en-têtes dans le S3 régulièrement, parce que c'est une chose qui fonctionne pour vous. On dirait qu'il n'y a pas d'autre moyen. Je vous tiendrai s'il y a.

Autres conseils

Pourquoi avez-vous besoin de la durée de cache être par rapport à la date actuelle?

vous avez dit:

  

« quand nous les changeons, nous allons également changer l'URL »

Ce qui me signifie que vos ressources jamais changement. Pourquoi alors ne pas mettre un en-tête Expires à une date future loin loin (01/01/2020 par exemple)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top