web-dev-qa-db-fra.com

Comment construire une tâche 'actifs: précompiler'

Je reçois cette erreur sur mon serveur de production et je ne comprends pas pourquoi. Cela se produit lors de l'exécution de cette commande:

bundle exec rake assets:precompile Rails_ENV=production

J'utilise Rails 3.1.0.rc6

29
tybro0103

Ceci est probablement dû au fait que votre config/application.rb ne nécessite pas Rails/all (valeur par défaut), mais certaines exigences personnalisées le nécessitent.

Pour résoudre ce problème, ajoutez ce qui suit à config/application.rb:

require 'sprockets/railtie'
75
Koraktor

Je sais que ceci est un ancien post, mais je pensais que cela pourrait aider quelqu'un (probablement mon avenir) si j'ajoutais cela aux réponses.

ajouter à Capfile (ou deploy.rb)

load 'deploy/assets'

ajoutez ceci à application.rb

require 'sprockets/railtie'
4
engineerDave

Je pense que c'est peut-être parce que vous n'avez pas besoin des gemmes d'actifs en production. Par défaut, Rails s'attend à ce que vous pré-compiliez vos ressources en production. Changez ceci dans config/application.rb:

Commentez cette ligne:

Bundler.require * Rails.groups (: assets =>% w (test de développement))

Et décommentez cette ligne:

Bundler.require (: default,: assets, Rails.env)

3
Daniel Hoey

C'est étrange. Vous pouvez toujours essayer d'ajouter

load "sprockets/assets.rake"

à votre Rakefile. Il devrait être inclus dans l'actionpack railtie.

Mon Rakefile contient:

require File.expand_path('../config/application', __FILE__)
Qnm::Application.load_tasks
1
qnm

J'exécutais cette commande - par habitude - à la racine d'une application uniquement pour API, qui, bien entendu, ne contient aucun actif.

0
Niek