2012-07-22 4 views
13

たびに実行されます。Herokuの単一git pushのアセット・プリコンパイル・ステップをスキップできますか?私はHerokuの、<code>rake assets:precompile</code>に私のRails 3.2のプロジェクトを展開

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

時々私は私が知っているプッシュは、そのようなコントローラへの迅速な修正プログラムなどの任意の資産を、変更しないようにしたいです。アセットをスキップすることは可能ですか?Herokuへの単一のgit pushのプリコンパイルステップですか?

ありがとうございました。

答えて

14

確かに! your_app/pubilc/assetsディレクトリにmanifest.ymlを作成する必要があります。

ファイルは空白にすることができます。しかし理想的には、すべてをローカルでプリコンパイルするので、Herokuへのデプロイはずっと高速になります。

Herokuにプッシュしているときにmanifest.ymlファイルもコミットしてください。 git add -f your_app/pubilc/assets/manifest.ymlgit push heroku masterのようなもので十分です。

+0

資産がいつでもHerokuでコンパイルされるようにするには、この解決策ではmanifest.ymlファイルにチェックインしてherokuにプッシュし、そのファイルを確実に削除する必要があります。右?この追加のステップを伴わない方法はありますか? – Eli

+2

Herokuに展開しているときに注意深く見れば、 'detected manifest.ymlのような行が表示されます。アセットをローカルにコンパイルすると仮定する。したがって、本質的にマニフェストファイルは、Herokuにアセットのコンパイルを実行しないように指示する信号です。私はあなたのコンソールで常に 'heroku run rake assets:precompile'を手動で実行できると思います。 –

+5

コンソールから 'heroku run rake assets:precompile'を実行すると、実行中のHeroku dynoのアセットがプリコンパイルされません。 Heroku上で実行される各プロセスは、異なる仮想環境で実行されます。 –

4

これは私のために働いた。 manifest.ymlは私のレール4のプロジェクトでは何もしなかった。レール4に

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

+0

ありがとう!これはまた、Rails 4 –

+0

の私のために働いたが、これによってプリコンパイルが不可能になることはありませんか? –

0

rake assets: precompileでジャストプリコンパイルローカルに代わりmanifest.yml

0

のファイルmanifest-<md5 hash>.jsonを作成し、public/assetsである生じた資産にチェックし、Herokuのにプッシュ。

これは、public/assetsディレクトリにマニフェスト-.ymlまたはjsonファイルを自動的に作成します。 herokuはそれを検出してDetected manifest file, assuming assets were compiled locallyと報告します。

注1:development.rbには、public/dev-assets insteadになる行があります。あなたの.gitignoreファイルがpublic/assetsディレクトリを除外していないことを確認します。もしそうなら、あなたはdev-assetsがちょうどassets

注2ために名前を変更する必要があります。

関連する問題