Cache logic in js_include_tag and stylesheet_link_tag?

So using the magic :cache argument to combine multiple CSS or JS files
into one cached file, using stylesheet_link_tag or
javascript_include_tag respectively…

I sort of figured that if the arguments to the function changed,
including different files… the combined cached file would be
re-generated.

This does not seem to be the case.

javascript_include_tag “a”, “b”, :cache => “my_key”

Stop application. Edit the code to be:

javascript_include_tag “a”, “b”, “c”, :cache => “my_key”

Restart the application. Run it. The combined cached my_key.js file
still only includes “a” and “b”, the cached file was not invalidated
when I added “c” to it. I had to go and find the file and rm it myself.

Is this a bug? Or is this expected behavior? Is there something I’m
missing? Under what circumstances is the cached file supposed to be
regenerated? If the last-modified timestamp changes on one of the
included files, will it be regenerated? Will it EVER be re-generated?

Jonathan R. wrote:

Is this a bug? Or is this expected behavior? Is there something I’m
missing? Under what circumstances is the cached file supposed to be
regenerated? If the last-modified timestamp changes on one of the
included files, will it be regenerated? Will it EVER be re-generated?

I see the same behavior, and I basically use the same solution. Probably
not a bad idea to add a step to your Capistrano (or whatever deploy
tool) to delete those files on each deployment.

Robert W. wrote:

Jonathan R. wrote:

Is this a bug? Or is this expected behavior? Is there something I’m
missing? Under what circumstances is the cached file supposed to be
regenerated? If the last-modified timestamp changes on one of the
included files, will it be regenerated? Will it EVER be re-generated?

I see the same behavior, and I basically use the same solution. Probably
not a bad idea to add a step to your Capistrano (or whatever deploy
tool) to delete those files on each deployment.

Thanks for the response. I’m thinking this is a bug, and I’ll try to go
ahead and file it in the tracker, although I lack the Rails fu to fix it
myself.

In the absence of a fix, could also add something to your Rails app
startup routines to delete the files, to work regardless of Capistrano
use or not.

Hi Jonathan

Read this also.
http://maintainable.com/articles/rails_asset_cache

If any modification happens to js or css as specified, then before next
release you can apply this trick

Sijo