是否有可能跳过Heroku上单个git推送的资产预编译步骤?

时间:2012-07-22 00:35:04

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

每次将Rails 3.2项目部署到Heroku时,都会运行rake assets:precompile

$ git push heroku master  
...
----> Preparing app for Rails asset pipeline
      Running: rake assets:precompile
      Asset precompilation completed (189.17s)
...

有时我想推动我知道不会更改任何资产,例如对控制器的快速修补程序。是否有可能跳过资产:单个git推送到Heroku的预编译步骤?

感谢。

4 个答案:

答案 0 :(得分:14)

当然!您需要在manifest.yml目录中创建your_app/pubilc/assets

该文件可以为空。但理想情况下,您可以在本地预编译所有内容,因此部署到Heroku会更快。

确保在推送到Heroku时也提交了manifest.yml文件。像git add -f your_app/pubilc/assets/manifest.ymlgit push heroku master这样的东西就足够了。

答案 1 :(得分:4)

这对我有用。 manifest.yml在我的rails 4项目中没有为我做任何事。

https://gist.github.com/Geesu/d0b58488cfae51f361c6

答案 2 :(得分:0)

在rails 4中,创建文件manifest-<md5 hash>.json而不是manifest.yml

答案 3 :(得分:0)

只需使用rake assets: precompile进行本地预编译,检查public/assets中生成的资产,然后推送到heroku。

这会自动在public/assets目录中创建manifest-.yml或json文件;然后heroku将检测到并报告Detected manifest file, assuming assets were compiled locally

注1:有些人在development.rb中有一行可以将这些行转到public/dev-assets instead;如果是这样,您需要将dev-assets重命名为assets

注意2:确保您的.gitignore文件不在public/assets目录之外。