J'utilise CarrierWave pour permettre aux utilisateurs de télécharger des images avec une capacité de recadrer après le téléchargement, le problème est que les versions sont créées et les CDN les attrape instantanément que lorsque les utilisateurs se connectent, ils ne voient pas les modifications car le cache de Cloudfront doit être invalidé et prend un temps assez décent pour se rafraîchir seul. P>
Je pensais que mettre des numéros de version sur les noms de fichiers peut être un bon moyen d'invalider le cache, comment réaliser cela à l'aide de CarrierWave? P>
et est-ce que la meilleure approche? p>
3 Réponses :
Vous pouvez trouver des détails sur la façon de le faire chez Carrierwave Wiki: P>
J'ai eu le même problème avec Cloudflare
ici ma solution hackish: mettez l'horodatage mis à jour_at dans un param. Devrait fonctionner avec tous les CDN P>
class AssetUploader < CarrierWave::Uploader::Base def url(options={}) super.split("?v=")[0]+"?v=#{model.updated_at.to_time.to_i}" rescue super end end
"Hackish", mais n'est-ce pas vraiment un moyen propre de le faire?
Ça marche! Mais je ne comprends pas. Quel est ce paramètre "V" utilisé? Qu'est-ce qui se passe dans les coulisses? Merci!
Il travaillait parfaitement! Le problème est maintenant que j'ai commencé à utiliser le document d'information de CarrierWave et cela ne fonctionnera plus. Des idées?
Pour que l'URL Trick fonctionne sur Amazon Cloudfront CDN, rappelez-vous simplement d'activer la chaîne de requête dans votre distribution. Allez dans l'onglet Comportement et activez "Strings de requête en avant". P>
passé quelques heures à déterminer ce qui ne va pas jusqu'à ce que je lisais votre réponse. Merci beaucoup!
Comment se passe la culture? À travers Rmagick via CarrierWave?
Le culture fonctionne sans problème, il utilise Minimagick et je peux voir les images recadrées sur le serveur (pas via le CDN).
Ce que je demande, c'est que vous faites la culture indépendante du processus de téléchargement de la CarrierWave?
Non, c'est après le téléchargement et les cultures par défaut sont générées.