Celui-ci est une bouchée! Fondamentalement, j'essaie d'envoyer tous mes actifs Rails 3 au Cloud S3 et d'utiliser CloudFront comme CDN pour tout livrer. J'ai déjà appris à configurer Rails pour tirer d'un serveur d'actifs en mode production. Le problème que je rencontre est de trouver un bon moyen d'emballer et d'envoyer automatiquement tout dans le nuage à partir d'une commande râteau ou d'une gemme de rails. L'autre problème que j'ai, c'est que je ne sais pas si l'utilisation de Less CSS avec le More gem va tout bousiller. More génère un fichier CSS à partir d'un autre répertoire et le place dans public/stylesheets. Toutes les idées ou suggestions sont très appréciées! Merci :)Utilisation de S3/CloudFront avec Rails 3 Atouts et moins CSS
Répondre
Si vous poussez vers Heroku et que vous utilisez les ressources Rails 3.1, vous êtes tous définis.
Dans la configuration CloudFront sur Amazon, créez votre distribution et définissez l'origine de l'URL de votre application.
ensuite dans votre fichier production.rb ajouter:
config.action_controller.asset_host = "xxxxxxxxx.cloudfront.net"
L'hôte est l'hôte de votre distribution CloudFront.
Ensuite, lorsque vous déployez, assurez-vous que vous êtes sur la pile Cedar et que les ressources sont en cours de compilation. Cela va ajouter un MD5 unique dans les noms de fichiers. Quand une demande est faite à votre CDN (géré automatiquement par le réglage dans votre fichier production.rb), alors le CDN servira soit sa version du fichier ou le tirer de l'origine en premier. Cela signifie que vous n'avez pas à pousser les fichiers vers le CDN, ils sont automatiquement entrés.
Si vous avez un fichier qui n'a pas de nom unique pour une raison quelconque, alors vous aurez besoin de voir comment invalider le cache dans CloudFront, mais à part ça, c'est plutôt facile.
Doux! Je n'avais aucune idée que CloudFront ferait cela. J'étais sous l'impression que je devais compiler les actifs et les télécharger dans le cadre de mon processus de CI. Merci! –
Cela ne fonctionne qu'avec Rails 3.1 ou supérieur. Si vous utilisez une version inférieure, vous devrez peut-être entrer et invalider les données dans le cache sur CloudFront (je ne sais pas comment faire cela, mais je pense que vous le pouvez). Avec les ressources Rails 3.1, il inclut une somme de contrôle MD5 dans le nom de fichier lui-même rendant chaque construction unique. –
- 1. Rails 3 et CSS
- 2. Rails 3.1 Atouts Problème en mode Dev
- 3. Utilisation de concevoir avec Rails 3 beta
- 4. Utilisation de CSS Blueprint avec Rails
- 5. Rails 3 et asset_hosts dans css?
- 6. Utilisation de CSS dans Rails
- 7. fichier .css.less local importation avec rails 3.1 + moins-rails
- 8. MOINS CSS et RetinaJS erreur
- 9. Double URL avec MOINS css
- 10. Réduire sprite CSS avec moins?
- 11. Utilisation de la fonction de fondu en moins pour CSS
- 12. Moins css avec le thème
- 13. Utilisation de l'API Api dans Rails 3
- 14. Utilisation de attr_accessor dans les rails 3
- 15. Moins css avec les paramètres optionnels
- 16. Débogage onMouseOver et onMouseOut avec javascript et moins css
- 17. CSS moins avec l'image de l'arrière-plan et le gradient?
- 18. Utilisation correcte de Mailer dans Rails 3
- 19. Utilisation de CSS et HTML avec MFMailComposeViewController
- 20. Utilisation de Rails 3 avec la gemme d'emplacement Geokit-rails3
- 21. Utilisation de distance_de_ligne_dans_les_taux dans Rails 3
- 22. Utilisation de liquide dans Rails 3
- 23. requête média et css MOINS CADRE 4
- 24. Réutiliser CSS code moins
- 25. Rails 3 + jQuery Mobile Themeroller = CSS invalide
- 26. Utilisation de Rails avec trombone et SWFUpload
- 27. Rails 3: Scopes: Routage: helpers JS/CSS
- 28. Effacement du style CSS de jQuery Mobile avec MOINS CSS
- 29. Images CSS dans Email With Rails 3
- 30. moins css pour Ubuntu (et compilation automatiquement)?
Comment déployez-vous votre code en production? –
@Jesse Je fais un git pousser maître heroku. Mon plan était d'exécuter une tâche rake pour télécharger toutes les ressources publiques statiques vers le cloud, puis de modifier mon serveur d'actifs à mon URL cloudfront. –