我有一个Rails应用程序,使用capistrano部署在一个拥有ubuntu16.04+ nginx + passenger5 +ruby2.5.0(通过rbenv) +NodeJS9.4的服务器上。由于一些未知的原因,当我打开网站时,乘客返回一个错误: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(' ')'"
如果我通过在Gemfile中添加"therubyracer“创业板来更改javascript运行时,项目将正常工作。知道为什么ExecJS自动检测缺少NodeJS吗?
提前谢谢。
发布于 2018-01-17 17:25:55
由于某种原因,nginx/客找不到合适的nodejs路径。我修正了之前发布的这个问题,将它添加到nginx配置的顶部( /etc/nginx/nginx.conf ):end PATH;
查看:Rails/Passenger/Node.js: ExecJS "Could not find a JavaScript runtime"获得更多信息。
此外,确保执行nginx的用户(www-data?)能够运行节点。
https://stackoverflow.com/questions/48304939
复制相似问题