在推送到Heroku之前自动预编译资产

在推送到Heroku之前,是否可以在Rails应用程序中自动预编译我的资产? 我总是忘记这样做,所以当我输入git push heroku master ,它会首先运行rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." 或者那种效果。

有没有人实现这样的解决方案? 可能没有钩子? 虽然我怀疑这是唯一的方法。

我终于想通了。 我确实在Cedar堆栈上。 问题是我已将我的public目录检查到Git中,当我推送到Heroku时,它意识到public存在,因此假设我已预编译。 运行git rm -r public并将public/**添加到我的.gitignore ,然后推送,修复问题。

听起来你可能不会在Heroku的Cedar Stack上 ? 如果您正在使用资产管道(Rails -v> = 3.1),则cedar提供三种编译资产的选项 。

来自文档 :

如果您尚未在本地编译资产,我们将尝试运行assets:precompile在slug编译期间assets:precompile任务。

你总是可以将heroku或类似的东西别名为rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master在你的bash配置文件中rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master

 #in ~/.bash_profile alias precompile_push='rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master' 

在雪松堆栈上,它将在slug编译期间执行此操作。 我推荐。

我已经创建了一个作为守护进程运行的gem,并自动从Git仓库中提取更改,预编译资产,提交并回退。

https://github.com/nectify/rails-precompile2git/