# Cache

Rendered responses have been stored on disk since version 0.9.0. Each URL keeps a variant per audience: HTML, Markdown, JSON, plus CSS and the generated text files. A later request for that variant skips the page handler. Authenticated responses are not stored in the shared cache.

```toml
[server]
bind_addr = "0.0.0.0:3000"
cache_dir = "/tmp/site-cache"

[cache]
html = 3600
css = 86400
js = 86400
fonts = 31536000
images = 2592000
```

The numbers are `Cache-Control` max-age in seconds. `[server].cache_dir` is where the files go. `BENSON_SERVER__CACHE_DIR` and `BENSON_SERVER__BIND_ADDR` overlay those two fields. See [CLI](/features/cli/) for the 0.12.0 rename.

`[[cache_warming]]` pre-renders paths during `benson build`:

```toml
[[cache_warming]]
pattern = "/"
audiences = ["browser", "ai_crawler", "ai_agent"]
```

`benson build --no-warm` still compiles assets and skips page warming. Development mode does not use this cache.

