I use a simple structure, similar to this in my application SPA: http://mcalthrop.github.io/angular-spa-demo/#/resources (tks example mcalthrop)
There is an initial load of assets (js, css) with cache bust (hash) in index.html (header) and after that, only templates and json (body) AngularJS are loaded.
The problem is that they are, that is, the features updated with the installation were loaded only when the user used Ctrl + R (hard reload) or logout. Our customers can spend days with the page open.
Similar problem reported: Refreshing a cached Angular SPA
I use grails, angular 1.6, active busting cache.