Skip to main content

Module static_files

Module static_files 

Source
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§

StaticFiles
Static file server.
StaticFilesConfig
Configuration for static file serving.