Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Force Rails' javascript and stylesheet caches to work on Heroku

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 tasks
Octocat-spinner-32 test
Octocat-spinner-32 MIT-LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 init.rb
Octocat-spinner-32 uninstall.rb

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.