2011-12-18 3 views
3

J'ai 2 environnements pour mon application sur heroku: la mise en scène et la production, et j'utilise le pipeline d'actifs Rails 3.1.Pipeline de ressources sur heroku: comment gérer 2 environnements?

J'ai mis une propriété config.action_controller.asset_host personnalisée pour faire mes actifs récupérés à partir CloudFront sur http://assets.myapp-staging.com ou http://assets.myapp.com

Le problème est que sur Heroku, les actifs sont toujours précompilés avec l'environnement de production. Ce qui signifie que toutes les URL présentes dans mes fichiers css ou js ciblent http://assets.myapp.com même dans la mise en scène.

Une idée?

Répondre

6

Votre meilleur pari est de faire l'une des deux choses:

1) Utilisez les nouveaux laboratoires utilisateur-env-config add-on ce qui rend vos variables d'environnement au cours de la phase de compilation des limaces.

Pour utiliser ce simplement:

$ heroku labs:enable user-env-compile -a myapp 
-----> Enabling user-env-compile for myapp... done 
WARNING: This feature is experimental and may change or be removed without notice. 

Pour plus d'informations sur ce sujet, voir ici: http://devcenter.heroku.com/articles/labs-user-env-compile

ou

2) Ne pas utiliser ces actifs. Avec la gemme Asset Sync, vous pouvez exécuter la compilation des assets une fois que l'application a été lancée dans son environnement. Cela va ensuite synchroniser vos actifs à S3.

Pour plus d'informations sur ce, consultez: http://devcenter.heroku.com/articles/cdn-asset-host-rails31

+0

Merci, je l'ai trouvé aussi la pierre précieuse de asset_sync et a commencé à aller dans cette voie. Mais je préfère vraiment ta première solution, je te le dirai aujourd'hui si ça marche! – Chris

+0

Cela fonctionne comme un charme. Je devais juste comprendre que j'avais besoin de ce plugin: https://github.com/heroku/heroku-labs – Chris

Questions connexes