pvskisteak5
pvskisteak5

Reputation: 4262

CSS loading locally but not in Heroku for a rails app

I'm following a rails prelaunch signup tutorial. Bootstrap was working fine deployed on heroku, but then I modified the bootstrap_and_override file to include a logo. When launching a rails server locally and viewing, the style is as I intended with bootstrap and the new header logo appearing.

Like I did before, I ran rake assets:precompile and pushed to git - followed this tutorial http://railsapps.github.com/rails-heroku-tutorial.html which worked before showing the css while on heroku. The html is showing but it looks like css and bootstrap are missing.

Does anyone have any ideas?

Upvotes: 54

Views: 35705

Answers (10)

Garry Tiscovschi
Garry Tiscovschi

Reputation: 21

This is a long shot, but if you're using Chrome try pressing Ctrl+Shift+R to reload the page as Chrome can sometimes cache old CSS settings.

Upvotes: 1

Kieran
Kieran

Reputation: 271

This issue can also happen when you are cloning an app and using a CDN for your assets.

Comment out config.action_controller.asset_host in production.rb if your heroku app is a staging site.

Upvotes: 0

Taimoor Changaiz
Taimoor Changaiz

Reputation: 10684

To load assets in production environment:

How to load assets in production rails

Note: After following above link

rm -rf tmp/*
rm -rf public/assets/*
RAILS_ENV='production' rake assets:precompile

then restart your server

Upvotes: 1

praaveen V R
praaveen V R

Reputation: 1261

I got the same problem in rails4 fixed with adding a. gem 'rails_12factor' b. bundle exec rake assets:precompile

Upvotes: 2

Wayferer
Wayferer

Reputation: 109

I had to run heroku run rake css:rebuild

Upvotes: -3

hellion
hellion

Reputation: 4850

If your using sass...before you go through all this other trouble...make sure your not mixing .css and .scss files in your assets folder.
Heroku seems to have some trouble mixing the two when compiling assets. I can't explain why of if its an accurate explanation...but, in my own experience all I had to do to fix this was simply rename any .css files to .scss.

Upvotes: 6

Francisco Quintero
Francisco Quintero

Reputation: 731

Check that in /config/environments/production.rb you have these set to true

config.cache_classes = true config.serve_static_assets = true config.assets.compile = true config.assets.digest = true

git add, git commit and push to heroku.

Upvotes: 22

Connor Leech
Connor Leech

Reputation: 18873

Run bundle exec rake assets:precompile on your local code

Commit the changes and deploy to heroku

Upvotes: 77

Peter J Bond
Peter J Bond

Reputation: 451

Had the same exact problem, I don't know if it will help other in the future, but I got this on my "git push heroku master" push:

WARNINGS:

    Include "rails_12factor" gem to enable all platform features

Updated my gemfile,

    *group :production, :staging do
      gem 'pg'
      gem 'rails_12factor'
    end*

Ran it again, to my delight it installed these:

    Installing rails_serve_static_assets (0.0.1)
           Installing rails_stdout_logging (0.0.1)
           Installing rails_12factor (0.0.2)

Site worked perfect after that. Hope that helps someone, I'm new to all this.

Upvotes: 45

pvskisteak5
pvskisteak5

Reputation: 4262

Figured it out after trying about everything stackoverflow could suggest. I simply checked git status, saw I had a bunch of uncommitted files (thought this would have been picked up by git push heroku master), then added, committed and pushed to git. Then I started over, ran bundle install, precompiled assets and deployed to heroku and it is working.

Upvotes: 5

Related Questions