Skip to content
Force Rails' javascript and stylesheet caches to work on Heroku
Pull request Compare This branch is 1 commit ahead of zeke:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Heroku Asset Cacher

This plugin will override the caching options of Rails helpers: javascript_include_tag and stylesheet_link_tag. It will instruct them to place their cached assets into the Rails /tmp directory, the only writeable directory in Heroku. It then adds some Rack middleware to route requests for those files to the /tmp directory.


script/plugin install


This plugin will only override the requests for all.js and all.css. So please use the convention of naming your cached JS and CSS assets: all.js and all.css, respectively. (these are the default naming conventions). Here is an example:

javascript_include_tag :all, :cache => true
stylesheet_link_tag :all, :cache => true

Or you can specify individual files to cache, as such:

javascript_include_tag 'jquery', 'jquery.tooltip', :cache => true
stylesheet_link_tag 'main_design', 'secondary_design', :cache => true

Files that are not included in the all.js or all.css bundle will still be served from their original directories.

Clearing the cached assets

You can run the following rake task on Heroku to regenerate your cached assets:

rake asset_cache:clear


To run the test suite:

rake test

To try out Heroku Asset Cacher in development, you can set the following option in environment.rb:

ActionController::Base.perform_caching = true

Previous Art

This plugin is based off of the work by Matthew Savage in his Heroku Asset Packager plugin.


Copyright © 2010 Mauricio Gomes, released under the MIT license

Something went wrong with that request. Please try again.