Expand description
Static file serving for fastapi_rust.
This module provides utilities for serving static files from directories. It includes security measures, caching support, and various configuration options.
§Features
- Directory mounting at path prefix
- Index file support (index.html by default)
- Content-Type detection from file extension
- ETag generation for caching
- Last-Modified headers
- Optional directory listing
- Symlink handling (configurable)
- Path traversal prevention
- Hidden file exclusion
§Example
ⓘ
use fastapi_core::static_files::{StaticFiles, StaticFilesConfig};
// Basic usage - serve ./public at /static
let static_handler = StaticFiles::new("./public")
.prefix("/static");
// Advanced configuration
let static_handler = StaticFiles::with_config(StaticFilesConfig {
directory: "./assets".into(),
prefix: "/assets".into(),
index_files: vec!["index.html".into(), "index.htm".into()],
show_hidden: false,
follow_symlinks: false,
enable_etag: true,
enable_last_modified: true,
directory_listing: false,
..Default::default()
});§Security
This module implements several security measures:
- Path traversal prevention: Requests containing
..or attempting to escape the root directory are rejected with 403 Forbidden. - Hidden file exclusion: Files starting with
.are not served by default. - Symlink protection: Symlinks are not followed by default to prevent serving files outside the intended directory.
Structs§
- Static
Files - Static file server.
- Static
Files Config - Configuration for static file serving.