I'm trying to find out what are the "Best Practices" and if there are any utilities available to assist with versioning of static resources and cache-control.
I'm working on an application (written with Struts 2) that uses a filter to apply cache-control headers to the static resources, javascript, css, and image files. The problem is we are having frequent releases to production and user's browser's will have cached previous versions of the 'static' resources. Now it is possible for the developers to manually add a version number to each static resource file and update that version number before each release but that would be a very fragile and error prone procedure. To mitigate the problem we have turned down the cache-control down to 1 hour but his is still far from ideal and only helps if the browsers obey the max-age setting. So what are the "Best Practices" and are there any utilities to assist? Here is the scheme I was considering building: Use tags to generate the static resource paths so they will include a release number in the path. So instead of path "/js/site.js" as in this script tag: <script type="text/javascript" src="/js/site.js"></script> I would generate this with the path "/v1.2.3/js/site.js" where "/v1.2.3/" represents the release number: <script type="text/javascript" src="/v1.2.3/js/site.js"></script> I would also write a Filter that would look for requests starting with the "/v1.2.3/" release number. When it found one it would strip off the release from the path and forward it to the actual path and on return it would apply the cache-control headers. I think this would handle the cache-control problem as the browsers would cache using the path with the release version and this would change with each new release. Do any utilities like this exist already? (no need to reinvent the wheel if they do.) Greg --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org