1

我刚刚开始维护别人的代码库,我无法让它在生产环境中本地运行。预编译样式表时会出现错误本身。

这是一个运行在 Ruby 1.9.2 上的 Rails 3.2.6 应用程序。我注意到在下面的输出中,gemset 被全局使用,这很奇怪,因为当我运行时

rvm gemset 列表

它表示正在使用项目的 gemset。我不确定这是否是我的问题的原因,如果它不相关。

我真的不知道该怎么做才能解决这个问题。有什么建议么?

RAILS_ENV=production rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/Users/bendowney/.rvm/rubies/ruby-1.9.2-p320/bin/ruby /Users/bendowney/.rvm/gems/ruby-1.9.2-p320@global/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
undefined method `each' for true:TrueClass
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/actionpack-3.2.6/lib/sprockets/static_compiler.rb:47:in `compile_path?'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/actionpack-3.2.6/lib/sprockets/static_compiler.rb:22:in `block in compile'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:212:in `block in each_logical_path'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:200:in `block (2 levels) in each_file'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:190:in `each'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:190:in `each_entry'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:198:in `block in each_file'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:197:in `each'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:197:in `each_file'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/sprockets-2.1.3/lib/sprockets/base.rb:210:in `each_logical_path'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/actionpack-3.2.6/lib/sprockets/static_compiler.rb:18:in `compile'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/actionpack-3.2.6/lib/sprockets/assets.rake:56:in `internal_precompile'
/Users/bendowney/.rvm/gems/ruby-1.9.2-p320@challenge/gems/actionpack-3.2.6/lib/sprockets/assets.rake:70:in `block (3 levels) in <top (required)>'
4

1 回答 1

3

在您的环境/production.rb 中,确保您config.assets.precompile是一个 Array 而不是设置为true. 文档中的示例:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js']
于 2012-09-15T02:09:39.280 回答