Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Force Rails' javascript and stylesheet caches to work on Heroku
Latest commit 92cbf74 @mgomes Back-ported write_asset_file_contents() from Rails 3 in order to supp…
…ort atomic writes when generating the cached assets


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.