Umar Ghouse Umar Ghouse - 3 months ago 16
Ruby Question

Heroku isn't updating my CSS and JS

First thing I should mention is that I'm NOT using Rails. I don't have a

rake assets:precompile
task (tried it anyway, didn't work). I don't have a
public/assets
folder either (tried
git rm -r public/assets
anyway, also didn't work).

For a long time, I was using Dropbox to deploy to Heroku (I'm quite the newbie to code) - I was planning on moving to git in about a month or so. But given this issue, I made the move today and tried pushing through git - also didn't work. i.e. I did a
git pull
, settled all the conflicts and then did
git push
. Still nothing.

Basically, Heroku isn't loading any of my new CSS and JS. It detects the files just fine. Running
git push
now says everything is up-to-date, running
git status
says there is nothing to commit. But using Chrome's inspect tool, the JS and CSS files don't have the new code I wrote.

I also tried adding the gem
rack-flash-session
to my Gemfile and requiring
'rack/flash/test'
in my application_controller - this actually crashed the whole app and I removed it.

I also tried installing the
heroku-repo
plugin and running
heroku repo:purge_cache --app my-app-name
but that also didn't work

Running the code locally, everything works fine. It's just the online version that's failing.

I updated the Heroku CLI just before trying any of this and (you guessed it!), also didn't work.

I don't know what other info you'd need, so let me know in the comments and I'll be happy to provide them :)

Any help is appreciated!

Answer Source

Refresh the page with control + shift + r. This will clear the client-side assets cache and get the newly updated ones. You could also look for a gem that does cache-busting "asset fingerprinting" - this is a unique string that's appended to the asset files which prevents browsers from using a fresh copy. I searched a little but I can't definitively point you to something that works with sinatra. Maybe you'll be able to find a gem that works though.