Static Files
Serving static files is a common requirement for web applications. Nexios provides a robust and flexible system for serving static assets like CSS, JavaScript, images, and other file types with security and performance in mind.
Basic Setup
To serve static files in Nexios, you need to configure a static files handler and mount it to your application:
from nexios import NexiosApp
from nexios.static import StaticFilesHandler
from nexios.routing import Routes
app = NexiosApp()
# Create a static files handler for a single directory
static_handler = StaticFilesHandler(
directory="static", # Directory relative to the application root
url_prefix="/static/" # URL prefix for accessing static files
)
# Add a route for static files
app.add_route(
Routes(
"/static/{path:path}",
static_handler
)
)
With this setup, a file at static/css/style.css
would be accessible at /static/css/style.css
.
Single Directory
The simplest configuration uses a single directory for all static files:
static_handler = StaticFilesHandler(
directory="static",
url_prefix="/static/"
)
Multiple Directories
For more complex setups, you can serve files from multiple directories:
static_handler = StaticFilesHandler(
directories=["static", "public/assets", "uploads"],
url_prefix="/static/"
)
When serving from multiple directories, Nexios searches for files in the order the directories are specified.
URL Prefixing
The url_prefix
parameter defines the URL path under which static files are served:
# Serve files at /assets/ instead of /static/
static_handler = StaticFilesHandler(
directory="static",
url_prefix="/assets/"
)