( including app.js and app.css from laravel mix ) and also using versioning/cache busting. is app.css and app.js will change even if it's set up like this ? Sorry bad english and Big Huge For anwering my question
As long as you are using the mix function with your assets and Cache-control public header changes will force a reload of your assets by the client due to the query string mix adds e.g. app.css?f3eb5556ca.
When you compile you assets using mix.version() and mix.manifest is created with a unique hash of each generated asset. Then in your view if you use mix(app.css) instead of app.css. The hash only changes when the code changes so you can effectively cache your assets forever and let mix deal with versioning.
This adds the hash to your url in your view and the browser will be forced to download a new copy of the asset busting the cache even with your cache header.
You can check in the network tab of your dev tools if/when assets are loaded from the cache.