5

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

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

4

3 回答 3

13

预编译资产会占用大量内存。在我的情况下〜= 400mb。由于内存使用过多,操作系统可能正在终止进程。您可以检查系统日志以验证是否是这种情况。

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

于 2012-06-28T22:42:18.357 回答
2

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

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

于 2014-10-16T06:09:58.067 回答
0

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

于 2015-02-20T22:32:16.077 回答