【问题标题】:Passenger + Ruby/ExecJS not finding NodeJS乘客 + Ruby/ExecJS 没有找到 NodeJS
【发布时间】:2018-01-17 15:46:57
【问题描述】:

我有一个使用 capistrano 在 ubuntu 16.04 + nginx +passenger5 + ruby​​ 2.5.0(通过 rbenv)+ nodejs 9.4 的服务器上部署的 Ruby on Rails 应用程序。由于某些未知原因,当我打开网站时,乘客返回错误: 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?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails node.js ruby passenger execjs


    【解决方案1】:

    由于某种原因,nginx/passenger 找不到正确的 nodejs 路径。我已经通过将它添加到我的 nginx 配置( /etc/nginx/nginx.conf )的顶部来修复这个问题: end PATH;

    查看:Rails/Passenger/Node.js: ExecJS "Could not find a JavaScript runtime" 了解更多信息。

    另外,确保执行 nginx 的用户(www-data?)能够运行 node.js。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多