我可以强制Heroku编译资产吗?

时间:2015-01-05 17:50:51

标签: ruby-on-rails ruby-on-rails-4 heroku

我曾经独自开发一个项目,现在我有一些其他人在项目中提供帮助。它是用Ruby on Rails开发的,我们在Heroku上有一个登台服务器。事先,部署工作流程是在本地计算机中预编译资产,然后将代码推送到heroku。当我独自一人时它很有效。

现在我正在与一名前端工程师合作。问题是我们在不同的位置工作,因此很难将他的计算机设置为与我的相同。因此,在推送到heroku之前,他将无法预编译代码。

当然我可以为他做,但如果他能将代码提交到登台服务器并让Heroku预编译它会更好。我认为Heroku检测manifest文件是否可用于确定是否需要预编译。有没有办法迫使Heroku重新编译资产?

我尝试过:heroku run rake assets:clean然后heroku run rake assets:precompile但没有运气......

1 个答案:

答案 0 :(得分:0)

Heroku的服务器使用read-only file system。这就是他们如何让你更容易旋转更多的dynos等等。

编译Rails资产意味着获取源文件并编译新文件,即将文件写入文件系统。由于在只读文件系统上不会发生这种情况,因此必须先进行预编译。即使您确实设法在Heroku上编译资产,通过写入/ tmp目录,在Heroku reboots dynos的那一天结束时,您的新文件将会消失,因为它们没有被检入到仓库中如果你已经在本地对它们进行了预编译,提交了它们,然后推送到了Heroku。

我能想象的任何解决方法都比帮助你的前端开发人员设置Rails并捆绑安装预先编译所需的宝石更复杂。