# Paths and caching

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](/docs/domains).

## How paths are answered

| 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.
