Last Monday I suggested on irc (
https://openacs.org/irc/log/2008-06-09) to add a versioning feature for CSS and JavaScript files. The idea is not new at all. You can read about that here:
http://www.stefanhayden.com/blog/2006/04/03/css-caching-hack/The main problem is, when you fix something on a production server, by touching a CSS, your users (even your boss) get old versions, due to browsers and proxy's cache. You can refresh your browsers, of course, by pressing F5, or CTRL-R (Command+R). But if you don't do it, you could get "old" content for days.
I think the best way is to add the "file modification date" to the url, something like src="...../file.css?version=timestamp
.
We should add this timestamp automatically. That way, whenever you change a css (or js) file, as soon as you upload it to the production server, you will get a new src link to that file.
That's the main idea. Now, let's talk about... if you think it's useful, how to do it, where should be done, etc.
I offer myself to do the implementation. I'd like to test it on a oacs 5.3, with lot of browsers, even with real users, but maybe the goal is to do it with template::head functions for next oacs release.
Ir order not to overload the server, the timestamp info could be cached, and flushed manually by developers when they upload by ftp, or automatically when upgrading a package, Or something similar to the "Changed" button form developer toolbar. When working on a development server, css refreshing could be very fast. On a production server, maybe autoflush could be once a day.
BTW, talking about developer-support, what about adding a CSS button?