We could append vanilla version number to the css and js files, so that each time vanilla is upgraded js and css files will be reloaded; for the browser, example.com/js/ac.js and example.com/js/ac.js?v=1.1.4 are different resources with their own cache.
Here is the patch for vanilla: Index: src/appg/init_people.php =================================================================== --- src/appg/init_people.php (revision 729) +++ src/appg/init_people.php (working copy) @@ -66,8 +66,8 @@
// BUILD THE PAGE HEAD // Every page will require some basic definitions for the header. -$Head->AddScript('js/global.js'); -$Head->AddStyleSheet($Context->StyleUrl.'people.css', 'screen', 100, ''); +$Head->AddScript('js/global.js?v='.APPLICATION_VERSION); +$Head->AddStyleSheet($Context->StyleUrl.'people.css?v='.APPLICATION_VERSION, 'screen', 100, '');
... and for People: Index: People.Control.RoleForm.php =================================================================== --- People.Control.RoleForm.php (revision 105) +++ People.Control.RoleForm.php (working copy) @@ -43,8 +43,8 @@ // Add the javascript to the head for sorting roles if ($this->PostBackAction == "Roles") { global $Head; - $Head->AddScript('js/prototype.js'); - $Head->AddScript('js/scriptaculous.js'); + $Head->AddScript('js/prototype.js?v='.APPLICATION_VERSION); + $Head->AddScript('js/scriptaculous.js?v='.APPLICATION_VERSION); }
I'm not so sure about this change... I know rails and I think wordpress do something similar, but I've heard it breaks caching on some browsers--meaning the files get reloaded with every page load.