web-dev-qa-db-ja.com

タスクの構築方法 'assets:precompile'

本番サーバーでそのエラーが発生しましたが、その理由がわかりません。次のコマンドを実行すると発生します。

bundle exec rake assets:precompile Rails_ENV=production

私はRails 3.1.0.rc6を使用しています

31
tybro0103

これはおそらく、config/application.rbRails/all(デフォルト)を必要としないためですが、一部のカスタムでは必要です。

これを解決するには、config/application.rbに以下を追加します。

require 'sprockets/railtie'
78
Koraktor

これが古い投稿であることは知っていますが、これを回答に追加すると、誰か(おそらく私の将来の自分)に役立つかもしれないと思いました。

capfile(またはdeploy.rb)に追加します

load 'deploy/assets'

これをapplication.rbに追加します

require 'sprockets/railtie'
4
engineerDave

プロダクションでアセットジェムを必要としないからかもしれないと思います。デフォルトでは、Railsは、本番環境でアセットを事前にコンパイルしていることを前提としています。config/ application.rbでこれを変更してください:

この行をコメントアウトします。

Bundler.require * Rails.groups(:assets =>%w(開発テスト))

そして、この行のコメントを解除します。

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

3
Daniel Hoey

それは奇妙です。あなたはいつでも追加してみることができます

load "sprockets/assets.rake"

あなたのRakefileに。アクションパックのレールタイに含まれている必要があります。

私のRakefileには次のものが含まれています。

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

私はこのコマンドを(まったくの習慣から)APIのみのアプリのルートで実行していましたが、もちろんアセットはありません。

0
Niek