rake资产预编译失败

当我运行bundle exec rake assets:precompile --trace ,我的预编译失败但我看不到任何特定的原因。

请参阅此pastebin以获取我的输出: http : //pastebin.com/zggZyPyM

预编译资产需要大量内存。 在我的情况下〜= 400mb。 操作系统可能因内存使用过多而导致进程被终止。 您可以检查syslog以validation是否是这种情况。

您可以增加服务器的内存以避免这种情况。 如果那是不可能的,我建议您在本地系统上预编译资产,将它们提交到repo并部署到服务器。 这样您就不必在服务器上编译资产了。 但是,您可能希望以某种方式研究删除以前生成的资产的方法,并自动执行该过程。

,但问题已解决我尝试先安装node.js。 然后,运行以下命令bundle exec rake assets:precompile 。 只有这样我没有注意到错误。

最初,我认为这是因为内存不足。 清理几乎所有正在运行的应用程序,但找不到解决方案。 另外,我以管理员身份打开了Ruby。 不确定这是否也有帮助,但问题已得到解决。

此问题也可以通过使用node.js JS运行时来预解资产,因为它显然具有较低的内存占用量。 对于Ubunutu 14.04,我需要运行apt-get install nodejs ,然后使用Gemfile gem 'node'替换apt-get install nodejs的默认js运行时,运行bundle并最终重新运行预编译。 我会警告不要在另一个位置进行预编译,因为在css或js更改后您可能会忘记执行此操作,从而导致错误。