This idea is called "cache busting", and there aren't any problems with your method that I'm aware of. It's a common, solid method that works reliably.
The other common alternative, of course, is to version the file path itself (e.g. /styles/v134/style.css or /styles/style-v134.css).
There's one final method that I've found useful in a niche circumstance: static site generators. If you have a static generated site that you don't update that often, you can have the site generator append the site's build time to URLs for all your versioned resources, e.g. /styles/style.css?t=(unix-time-stamp). This has the advantage of you not needing to manually update your file versions when each file changes, but has the disadvantage of cache busting ALL your resources every time you push an update.