Dans Rails 3, les gemmes utilisées exclusivement pour générer des actifs dans le pipeline d'actifs étaient correctement placées dans le assets
groupe du Gemfile:
...
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'uglifier'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
end
Maintenant, selon la documentation de mise à niveau (toujours en cours) :
Rails 4.0 a supprimé le groupe d'actifs de Gemfile. Vous devrez supprimer cette ligne de votre Gemfile lors de la mise à niveau.
Effectivement, créer un nouveau projet avec RC1 donne un Gemfile avec des gemmes liées aux actifs incluses par défaut en dehors de tout groupe:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0.rc1'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0.rc1'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
...
Cela signifie-t-il que ces gemmes seront désormais regroupées dans les versions de production par défaut? Si oui, pourquoi ce changement d'avis? Rails 4 évolue-t-il vers la génération dynamique d'actifs en production?
RAILS_GROUPS=assets
(voir Rails.groups
) avant la commande pour précompiler les actifs en production dans votre environnement de construction.