28 votes

Meilleure façon de combiner et de réduire JS / CSS sur Heroku

Tout d'abord, selon cette réponse, l' :cache => true option sur stylesheet_link_tag et javascript_include_tag ne fonctionne pas sur Heroku. Est-ce vrai? J'ai trouvé :cache => true à travailler de temps en temps, mais pas toujours (bizarre!)

Aussi, quelle est la meilleure solution ici? L'idéal serait de combiner de façon transparente et rapetisser tous les CSS / JS. Heroku de l'Actif de l'Emballeur des réclamations à faire: es-t-il de meilleures options?

23voto

Greg Points 1057

J'utilise Jammit sur Heroku. Fonctionne très bien. Vous pouvez créer vos ressources localement et vous connecter à Heroku. utilisation

 jammit --force
 

la version actuelle 0.5.1 a des problèmes avec Heroku mais vous pouvez installer la version fixe depuis git: //github.com/documentcloud/jammit.git

Si vous utilisez Rails 3, spécifiez ce qui suit dans votre bundle Gemfile:

 gem "jammit", :git => "git://github.com/documentcloud/jammit.git"
 

Pour Rails 2. *

 config.gem "jammit", :source => "git://github.com/documentcloud/jammit.git"
 

Bonne chance.

8voto

polarblau Points 10127

J'ai trouvé que l'ajout d'un hook git pré-commit qui compile et compresse les actifs, puis les ajoute au commit actuel est utile dans ce cas.

Le mien utilisant Jammit ressemble à ceci (en .git/hooks/pre-commit ):

 jammit
rake barista:brew
git add public/assets/*
git add public/javascripts/*
 

De cette façon, tous vos actifs seront emballés pour vous et vous n'aurez plus à vous en soucier.

4voto

Josh Delsman Points 2333

GitHub a une bonne réponse à cela, et je suis sûr que vous pouvez modifier les scripts de déploiement de Heroku pour intégrer:

http://github.com/blog/551-optimizing-asset-bundling-and-serving-with-rails

3voto

Jerry Cheung Points 628

Je ne l'ai pas encore essayé sur heroku, mais Sprockets pourrait être bon pour ça. De plus, dans le passé, j'ai eu plus de chance avec

 :cache => 'all.css'
:cache => 'all.js'
 

au lieu de «vrai»

1voto

David Dollar Points 2138

C'est une façon différente de gérer votre CSS / Javascript mais vous voudrez peut-être consulter la boîte à chaussures du plugin Rails.

Shoebox peut combiner, réduire et mettre en cache.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X