【发布时间】:2012-12-20 16:39:41
【问题描述】:
我通过从 root 用户编译和安装 node.js 来安装它。我想这可能是挂断的地方。从运行 rails 应用程序的用户那里,我检查了 node.js。
$ which node
/usr/local/bin/node
当我启动我的 Rails 应用程序(Rails 3.2.9)时,我得到了普遍无益的“我们很抱歉,但出了点问题”。检查生产错误日志,我发现未找到 Javascript 运行时。这很令人困惑,因为它显然已安装。所以我开始强制 Node javascript 运行时。我编辑了 config/boot.rb 以包括:
ENV['EXECJS_RUNTIME'] = 'Node'
我在查看生产日志的同时再次检查了我的应用程序。这次我得到了错误
ActionView::Template::Error (Node.js (V8) runtime is not available on this system
还是一头雾水。我去了 execjs gem 并将运行时命令更改为确切的安装路径。
Node = ExternalRuntime.new(
:name => "Node.js (V8)",
:command => "/usr/local/bin/node",
:runner_path => ExecJS.root + "/support/node_runner.js",
:encoding => 'UTF-8'
)
我仍然遇到同样的错误。节点已安装并可供用户访问,但 gem/rails 似乎无法使用它。 服务器运行 CentOS 6.3。导致抛出错误的特定 javascript 文件是 jquery.nivo.slider.pack.js。从 nivo 下载后我没有编辑它。
【问题讨论】:
-
您的解决方案对我有用。我有一个软呢盒并使用 phusion 乘客提供应用程序。不过,在我更改运行时命令后,我必须重新启动应用程序,正如您在上面指出的那样才能正常工作。
标签: ruby-on-rails ruby node.js centos execjs