Use Gulp, Webpack, or similar to add unique hash digits to your css, js, and image files (like app-67ce7f3483.css). It will force reload file when hash digit changes (control forcing reload by ownself)
For js,css, and image files, set Cache-Control: public, max-age=31536000, no Etag, no Last-Modified settings.
For html files, use Cache-Control: no-cache, and Etag. IT will force browser to validate other resources before using cache.
Link: https://medium.com/pixelpoint/best-practices-for-cache-control-settings-for-your-website-ff262b38c5a2
TL;DR