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/"
)