ruby-on-rails-3.1 - ExecJS,但是未能找到JavaScript运行库

  显示原文与译文双语对照的内容

我正在尝试使用 Mongoid/设计 Rails 3.1模板 ( Mongoid设计出 ),并且我一直得到一个错误,说明 ExecJS无法找到一个JavaScript运行时。 这非常正常,但是我试过当我没有任何安装安装 Node.js野马ruby 赛车,但设备失灵。

我找不到JavaScript运行时。 查看 sstephenson/execjs ( GitHub ) 获取可用运行时( ExecJS::RuntimeUnavailable )的列表。

我需要做什么才能得到这个工作?

时间:

Ubuntu用户

我在 Ubuntu 11.04上,有类似的问题。 安装 Node.js 修复它。

在 Ubuntu 13.04 x64中,你只需要运行:


sudo apt-get install nodejs

这将解决这个问题。


centos/redhat用户


sudo yum install nodejs

只需在gem文件中添加 ExecJSruby 赛车手,然后运行 bundle install


gem 'execjs'

gem 'therubyracer'

一切都应该在之后。

我也有类似的问题: 我的Rails 3.1应用程序在 Windows 上运行良好,但在Linux上运行时出现了与OP相同的错误。 在两个平台上为我工作的修复是将以下内容添加到我的Gemfile:


gem 'therubyracer', :platforms => :ruby

窍门是知道 :platforms => :ruby 实际上意味着只使用这个gem和"c ruby ( MRI ) ) 或者 Rubinius,而不是 Windows 。"

:platforms的其他可能值在中描述 bundler 手册页。

简介:Windows 有一个内置的JavaScript引擎,execjs 可以定位。 在Linux上没有一个内置的,虽然有几个可以安装的。 therubyracer 就是其中之一。 其他的列在 execjsREADME.md 列表中。

另一种方法是不包含包含你没有的东西的gem组。

这样做:


bundle install --without assets

你根本不需要修改软件包,当然你没有做资产链的事情- 这通常在non-development环境中。 包将在 Bundle 。Bundle/config文件中记住你的'--without'设置。

我曾经将 ruby 赛车手添加到Gem文件来修复它。 但是,Node.js

...