Yes, adding a unique query string to the resource URI will force the client to get a "new" version (since the client does not know that this is just an update of a previously cached resource). This is called fingerprints , and you usually use a timestamp or incremental version number 1 of the CSS file.
Google Web Fundamentals has a great article on HTTP cache optimization . Especially the section entitled "Invalidity and update of cached responses:"
How do you get the best of both worlds: client-side caching and fast updates? . You change the URL of the resource and force the user to download a new response when changing its content. Typically, you do this by inserting a fingerprint of a file or version number into its file name - for example, a style. x234dff .css.
Remember that a fingerprint does not have to be a sequential number. Any value - hash, version, etc. - will be valid as long as the risk of collisions is limited.
1) This is what is being done here on SO, for example. http://sstatic.net/js/global-login.js?v=12
jensgram
source share