Ruby on rails 我得到一个名称错误:Rails 4应用程序部署上未初始化的常量CoffeeScript::ExecJS

Ruby on rails 我得到一个名称错误:Rails 4应用程序部署上未初始化的常量CoffeeScript::ExecJS,ruby-on-rails,ruby-on-rails-4,bundler,Ruby On Rails,Ruby On Rails 4,Bundler,我的Digital Ocean LAM Rails VPS上部署了Rails 4应用程序。我已经开发了很长一段时间,一切都进行得很顺利,但现在当我想要运行迁移或清理资产时,我会遇到以下错误: NameError: uninitialized constant CoffeeScript::ExecJS /usr/local/rvm/gems/ruby-2.1.1/gems/coffee-script-2.3.0/lib/coffee_script.rb:5:in `<module:Coffe

我的Digital Ocean LAM Rails VPS上部署了Rails 4应用程序。我已经开发了很长一段时间,一切都进行得很顺利,但现在当我想要运行迁移或清理资产时,我会遇到以下错误:

NameError: uninitialized constant CoffeeScript::ExecJS
/usr/local/rvm/gems/ruby-2.1.1/gems/coffee-script-2.3.0/lib/coffee_script.rb:5:in `<module:CoffeeScript>'
/usr/local/rvm/gems/ruby-2.1.1/gems/coffee-script-2.3.0/lib/coffee_script.rb:4:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.1.1/gems/coffee-script-2.3.0/lib/coffee-script.rb:1:in `require'
/usr/local/rvm/gems/ruby-2.1.1/gems/coffee-script-2.3.0/lib/coffee-script.rb:1:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.1.1/gems/coffee-rails-4.0.1/lib/coffee-rails.rb:1:in `require'
/usr/local/rvm/gems/ruby-2.1.1/gems/coffee-rails-4.0.1/lib/coffee-rails.rb:1:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `each'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `block in require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `each'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.2/lib/bundler.rb:132:in `require'
/var/www/html/kosarka/config/application.rb:7:in `<top (required)>'
/var/www/html/kosarka/Rakefile:4:in `require'
/var/www/html/kosarka/Rakefile:4:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
/usr/local/rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
我在Win7机器和Mac上开发了这个应用程序,在开发环境中运行它没有问题

我在服务器上使用Phusion Passenger,通常只是使用.sh脚本提取repo内容,然后运行rake migrate asset clean和precompile命令

欢迎提供任何帮助。

替换此部分:

group :production do
    gem 'mysql2'
    gem 'therubyracer',  platforms: :ruby
    gem 'execjs'
end


另外,我认为如果没有
execjs
gem,您的应用程序也可以正常运行。试着检查它是否有任何问题。

这将是一个相当模糊的答案。我在stackOverflow上看到很多人提出了这个问题,但是提示(rm-rf.bundle和cache等)对我没有帮助

所以我只是恢复到一个旧的Gem文件和Gem.lock,它恰好解决了这个问题

然后我转到Bitbucket并查看了提交,发现实际上是Gem.lock中的所有版本更改(可能是意外的捆绑包更新,而不是捆绑包安装)导致了问题

尽管我的Gem文件中只有一个日期验证程序更改,但我的Gem.lock中充满了以下内容的新版本:

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.0'
# Use sqlite3 as the database for Active Record
group :development do
    gem 'sqlite3'
end
group :production do
    gem 'mysql2'
    gem 'therubyracer',  platforms: :ruby
    gem 'execjs'
end

#To validate delivery date is in the futurebund
gem 'date_validator'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# 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
# Use Paperclip for image upload
gem 'paperclip'
# Use jquery as the JavaScript library
gem 'jquery-rails'

gem 'jquery-turbolinks'

gem 'jquery-ui-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring',        group: :development

# For development on Windows machines
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
gem 'capistrano-rails', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]
bcrypt
capistrano
coffee-script-source
execjs
multi_json
jbuilder
spring

我仍然无法深入了解问题的严重性,但至少找到了避免问题的方法。

我不认为这有什么关系,因为我只在生产中使用mysql2和其他工具,而且我在开发环境中的应用程序没有问题。问题似乎是一个包更新,更新了所有相关的gem,并把事情弄得一团糟。
bcrypt
capistrano
coffee-script-source
execjs
multi_json
jbuilder
spring