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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs