Warning: Bocadillo is now UNMAINTAINED. Users are recommended to migrate to a supported alternative, such as Starlette or FastAPI. Please see #344 for more information.
Static files
Bocadillo uses WhiteNoise to serve static assets for you in an efficient manner.
Basic usage
Place files in the static
folder at the root location, and they will be available at the corresponding URL:
/* static/css/styles.css */
h1 {
color: red;
}
curl "http://localhost:8000/static/css/styles.css"
h1 { color: red; }
Static files location
By default, static assets are served at the /static/
URL root and are searched for in a static/
directory relative to where the app is executed. For example:
.
├── static
│ └── css
│ └── styles.css
└── myproject
├── app.py
└── settings.py
You can modify the static files directory using the STATIC_DIR
setting:
# myproject/settings.py
STATIC_DIR = "staticfiles"
To modify the root URL path, use the STATIC_ROOT
setting:
# myproject/settings.py
STATIC_ROOT = "assets"
If the STATIC_DIR
does not exist, Bocadillo won't attempt to serve assets from it, and no errors/warnings will be raised.
Extra static files directories
You can serve extra static directories using app.mount()
and the static
helper:
from bocadillo import static
app.mount(prefix="assets", app=static("assets"))
WhiteNoise configuration
You can pass any extra WhiteNoise configuration attributes via the STATIC_CONFIG
setting.
For example, to set the time browsers and proxies should cache files to 30 seconds, use:
# myproject/settings.py
STATIC_CONFIG = {"max_age": 30}
Disabling static files
To prevent Bocadillo from serving static files altogether, use:
# myproject/settings.py
STATIC_DIR = None