我在服务器上使用capistrano部署了一个Ruby on Rails应用程序,使用ubuntu 16.04 + nginx + passenger5 + ruby 2.5.0(通过rbenv)+ nodejs 9.4。由于某些未知原因,当我打开网站时,乘客返回错误: {{1}}
如上所述,我安装了nodejs,如果我尝试通过ruby console(irb)运行第一个ExecJS示例,它可以正常工作: {{1}}
如果我通过将“therubyracer”gem添加到Gemfile来更改javascript运行时项目正常工作。任何想法为什么ExecJS自动检测缺少NodeJS?
提前致谢。
答案 0 :(得分: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?)能够运行节点。