Rake中止!ExecJS :: RuntimeError:(execjs):1

5

我在生产服务器上进行预编译时遇到了错误;但是,如果我将环境设置为 production 并在 development 电脑上运行预编译,它就可以正常运行。这怎么可能?

RAILS_ENV="production" bundle exec rake assets:precompile RAILS_GROUPS=assets

返回错误:

   ...
   rake aborted!
   ExecJS::RuntimeError:
   (execjs):1
   ...

我完全不知道错误来自哪里。


1
我理解你所说的依赖于人们更新gems的问题,但是你考虑过使用Rails Assets吗?这些gems是自动生成的,所以从技术上讲,你不依赖于任何特定的维护者,并且你可以像其他所有gems一样通过Bundler获取更新。 - taglia
@taglia 是的,你说得对。这是一个很好的方法。谢谢你的建议! - Jorge
@taglia 我已经将我的资产转换为rails-assets;然而,在生产服务器上,错误是由于RAM内存不足导致的。 - Jorge
3个回答

8

简单来说,我的生产服务器内存不够用了。我将它加大到1GB,现在运行得像魔术一样好!


一样的。我正在使用 Cap 部署 Rails 应用,发现在运行部署之前必须杀死应用程序。只需在服务器上运行 htop,并查看您是否接近最大化 RAM。 - mostlydev
不幸的是,即使是用于分段服务器,512MB也是不够的! - fatfrog

4

3
我遇到了同样的问题。我的服务器是nginx。在使用命令重启后,问题得到了解决。
service nginx restart

问题已解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接