Static asset revisioning by appending content hash to filenames