Passenger + Ruby/ExecJS 没有找到 NodeJS
Passenger + Ruby/ExecJS not finding NodeJS
我在 Rails 上有一个 Ruby 应用程序,使用 capistrano 在服务器上部署 ubuntu 16.04 + nginx + passenger5 + ruby 2.5.0(通过 rbenv) + 节点 9.4。由于某些未知原因,当我打开网站 passenger returns 时出现错误:
There was an error while trying to load the gem 'bootstrap'.
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes."
如前所述,我安装了 nodejs,如果我尝试通过 ruby 控制台 (irb) 运行 第一个 ExecJS 示例,它会正常工作:
require "execjs"
ExecJS.eval "'red yellow blue'.split(' ')'"
如果我通过将 "therubyracer" gem 添加到 Gemfile 来更改 javascript 运行 时间,项目将正常运行。知道为什么 ExecJS 自动检测缺少 NodeJS 吗?
提前致谢。
出于某种原因nginx/passenger 无法找到正确的 nodejs 路径。我之前通过将其添加到我的 nginx 配置 ( /etc/nginx/nginx.conf ) 的顶部来修复此问题:
end PATH;
查看:Rails/Passenger/Node.js: ExecJS "Could not find a JavaScript runtime" 了解更多信息。
此外,确保执行 nginx 的用户(www-data?)能够 运行 节点。
我在 Rails 上有一个 Ruby 应用程序,使用 capistrano 在服务器上部署 ubuntu 16.04 + nginx + passenger5 + ruby 2.5.0(通过 rbenv) + 节点 9.4。由于某些未知原因,当我打开网站 passenger returns 时出现错误:
There was an error while trying to load the gem 'bootstrap'.
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes."
如前所述,我安装了 nodejs,如果我尝试通过 ruby 控制台 (irb) 运行 第一个 ExecJS 示例,它会正常工作:
require "execjs"
ExecJS.eval "'red yellow blue'.split(' ')'"
如果我通过将 "therubyracer" gem 添加到 Gemfile 来更改 javascript 运行 时间,项目将正常运行。知道为什么 ExecJS 自动检测缺少 NodeJS 吗?
提前致谢。
出于某种原因nginx/passenger 无法找到正确的 nodejs 路径。我之前通过将其添加到我的 nginx 配置 ( /etc/nginx/nginx.conf ) 的顶部来修复此问题:
end PATH;
查看:Rails/Passenger/Node.js: ExecJS "Could not find a JavaScript runtime" 了解更多信息。
此外,确保执行 nginx 的用户(www-data?)能够 运行 节点。