在推送到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仓库中提取更改,预编译资产,提交并回退。