A static site is answered by Alf's edge, from its live deploy's files, like a static host would: which file a path gets, what a single-page app needs, and how long browsers keep what they got. It answers at its own address and at its custom domains.
| A request for | Gets |
|---|---|
/ | index.html |
/docs/ | docs/index.html |
/docs (a folder) | A redirect to /docs/ |
/about | about, or else about.html |
| A path that's no file | The site's own 404.html with status 404, if it has one |
SPA mode (in its settings) is for single-page apps that handle their own routes: a path that isn't a file gets index.html instead, with a 200.
Files are sent with the right content type, an ETag, and support for range requests. A file whose name carries a content hash, like assets/index-B1x9Qz7c.js from Vite or webpack, is cached by browsers for a year, because its name changes when its content does. Everything else is checked again on each visit, so a deploy shows at once.