当我运行bundle exec rake assets:precompile --trace
时,我的预编译失败,但我看不到任何具体原因。耙子资产预编译失败
我的输出看到这个引擎收录:http://pastebin.com/zggZyPyM
当我运行bundle exec rake assets:precompile --trace
时,我的预编译失败,但我看不到任何具体原因。耙子资产预编译失败
我的输出看到这个引擎收录:http://pastebin.com/zggZyPyM
预编译的资产需要大量的内存。 〜= 400mb在我的情况。由于内存使用过多,操作系统可能会杀死该进程。您可以检查系统日志以验证情况是否如此。
您可以增加服务器的内存以避免出现这种情况。如果这是不可能的,我建议您在本地系统上预编译资产,将它们提交到回购站并部署到服务器。这样你就不必在服务器上编译资产。但是,您可能想要考虑以某种方式删除以前生成的资产并自动执行该过程。
,但问题已解决我试着先安装node.js。然后,运行以下命令bundle exec rake assets:precompile
。只有这样我才没有注意到这个错误。
最初,我认为这是因为内存太少。几乎清理了所有正在运行的应用程序,但找不到解决方案。另外,我以管理员身份打开了Ruby。不知道这是否也有帮助,但问题已解决。
此问题也可以通过使用node.js JS运行时预编译资产来解决,因为它显然具有较低的内存占用量。对于Ubunutu 14.04,我需要运行apt-get install nodejs
,然后用gem 'node'
替换Gemfile
中的默认js运行时,运行bundle
,最后重新运行预编译。我会告诫不要在另一个位置进行预编译,因为在css或js更改后您可能会忘记执行此操作,从而导致错误。
您是否安装了JavaScript运行时?当我尝试在linux虚拟机上预先编译资源时,本周我遇到了类似的错误。 – Zajn
如果zajn的建议没有解决,你应该检查你的系统日志。预编译资产会占用大量内存(超过“rails s”),并且操作系统可能会因此而终止进程。 – rubish
啊! @rubish你是对的......内存不足。 – jasonlfunk