Context
Context. Built assets are served with a long cache lifetime, so a returning browser keeps its own copy of app.css until the URL changes. The platform gives every deploy a hash, getLastVcsHash() on the site, that changes with every push. Put it in a ?v= parameter and the URL changes exactly when the file can. Uploaded files are a different case: a file replaced in the file manager keeps its address on purpose, so those URLs are busted by a setting rather than a template.