0

アプリを Rails 3.0.3 から 3.2.8 にアップグレードしています。アセットをプリコンパイルしようとしています。私はこの出力を得る:

$ bundle exec rake assets:precompile
/usr/local/rvm/rubies/ruby-1.9.2-p320/bin/ruby /usr/local/rvm/gems/ruby-1.9.2-p320@pier-admin-32/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
no such file to load -- sass/rails/compressor
  (in /home/danb/Documents/Projects/pier-admin/pier-admin/app/assets/stylesheets/application.css)

Tasks: TOP => assets:precompile:primary
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [/usr/local/rvm/rubies/ruby-1.9.2-p320/bin/...]

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

これに比較的慣れていないので、何が問題なのか途方に暮れています。以前はアセットを使用していなかったので、アップグレード中に最低限のことをしようとしました。アプリは開発中です。どんな助けでも大歓迎です。

アセット グループは次のとおりです。

group :assets do
  gem 'sass'
  gem 'coffee-script'
  gem 'uglifier'
end

application.css は

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require_self
 *= require_tree . 
*/
4

1 に答える 1

1

:assets グループは本番環境にはインストールされないため、おそらくこれらの gem がなく、rake が失敗します。

1 つのオプションは、開発時にプリコンパイルし、ファイルを /public にコミットして、運用サーバーにプッシュすることです。

もう 1 つは、次のように application.rb でアセットを遅延初期化することです。

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  # Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  Bundler.require(:default, :assets, Rails.env)
end
于 2012-10-01T22:45:31.940 に答える