Is it possible to automatically precompile my assets in a Rails app before pushing out to Heroku? I always forget to do it, so it would be nice if when I typed git push heroku master
, it would first run rake assets:precompile ; git commit add . ; git commit -a -m "Precompile."
, or something to that effect.
Has anyone achieved such a solution? Possibly without hooks? Though I suspect that is the only way.
To compile your assets locally, run the assets:precompile task locally on your app. Make sure to use the production environment so that the production version of your assets are generated. A public/assets directory will be created. Inside this directory you'll find a manifest.
rake assets:precompile. We use rake assets:precompile to precompile our assets before pushing code to production. This command precompiles assets and places them under the public/assets directory in our Rails application.
I finally figured this out. I was indeed on the Cedar stack. The problem was that I had checked my public
directory into Git, and when I pushed to Heroku, it realized that public
existed, and thus assumed I precompiled. Running git rm -r public
and adding public/**
to my .gitignore
, then pushing, fixes the problem.
It sounds like you might not be on Heroku's Cedar Stack? If you're using the asset pipeline (Rails -v >= 3.1), cedar provides three options for compiling assets.
From the docs:
If you have not compiled assets locally, we will attempt to run the
assets:precompile
task during slug compilation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With