preactjs / preact-cli

😺 Your next Preact PWA starts in 30 seconds.
MIT License
4.69k stars 375 forks source link

Output all immutable files into common directory #1364

Open teodragovic opened 4 years ago

teodragovic commented 4 years ago

Do you want to request a feature or report a bug?

Feature

What is the current behaviour?

All webpack-generated files are outputted into build directory alongside files from static, index.html and manifest.json that are copied verbatim.

If this is a feature request, what is motivation or use case for changing the behaviour?

CRA has heuristic that all hash-based, immutable files are placed in static/ directory. Generated files that should not be cached like sw are NOT part of this directory. This makes writing server caching rules easier.

IMO it would be great if the same or similar setup could be provided by preact-cli.

benkingcode commented 4 years ago

I've also just run into this problem, deploying to Vercel and trying to set cache headers for immutable files, but they're not colocated so have had to resort to some funky regexing.

teodragovic commented 4 years ago

FYI this is the current caching solution my team uses:

ALL files have Cache-Control: max-age=0, must-revalidate, public header set along with ETag and Last Modified. This makes sure files are cached but always re-validated against origin server before use.

Reference: https://www.netlify.com/blog/2017/02/23/better-living-through-caching/