当我突然意识到它有一个小错误时,我有了我的小rails-app(基于refinerycms),并运行良好。修复它,测试好,提交,推送,部署,定期例程。但是这一次我的部署(这之前工作过无数次)期间assets:precompile
对我开车撞Rails资产:部署期间的预编译失败
* 2012-12-21 11:44:59 executing `deploy:assets:precompile'
* executing "cd /home/somename/releases/20121221104442 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
servers: ["ssh.alwaysdata.com"]
[ssh.alwaysdata.com] executing command
*** [err :: ssh.alwaysdata.com] rake aborted!
*** [err :: ssh.alwaysdata.com] Invalid argument - /nfs/http9/somename/app/ttvz/releases/20121221104442/tmp/cache/assets/D17/790/sprockets%2F159b50b9f479a8cb2519ea6a40f09f92
*** [err :: ssh.alwaysdata.com] /home/somename/app/ttvz/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/core_ext/file/atomic.rb:38:in `chown'
...
,当然还有一大堆堆栈跟踪的。我试图在网络上找到某些东西,但惨败得无影无踪。当我试图预编译应用程序的current
版本的资产时(也就是开发中的魅力),也发生了同样的情况。
这似乎不同于其他precompile
-在StackOverflow上的错误。
检查您的部署用户是否对您的资产或tmp文件夹拥有权限。 – MurifoX
我无法回答我的问题,因为我不知道它是如何修复它的,但我可以告诉你我最终做了什么。 alwaysdata主要是Django托管的,但是因为我可以安装自己的rails,所以不会有太大的问题。为了调试这个问题,我因此在'atomic.rb'中引入了一个'puts file_name',并且奇迹永远不会停止(或者很快圣诞节:-),从而解决了这个问题。但是,这让我感到比以前更困惑(但至少在固定的应用程序中:-)。任何暗示的原因,不胜感激。 – Patru
我刚刚尝试了相反的实验并删除了我的'puts ...',问题又回来了。然而,即使重新引入线路,它也不会消失。由于我现在没有任何变化,这不是一大堆问题,但“解决方案”似乎很暂时甚至是随机的,这很麻烦。 – Patru