我通过编译并从root用户安装node.js来安装node.js。我想这可能是挂断的地方。从运行rails应用程序的用户,我检查了node.js.未找到Rails/execjs的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下载它后我没有编辑它。
您的解决方案适用于我。我有一个fedora盒子,并使用phusion乘客服务一个应用程序。尽管如此,我必须重新启动应用程序,但在更改运行时命令之后,正如您在上面所指出的那样,这样才能工作 –