nautalid 0.1.0

Scratch container substrate — TLS 1.3 HTTP/2+3 kernel, LID/AetherDB, optional filter bus (GPL-3.0-or-later).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//! Static asset hosting — mount a directory at a URL prefix.

use axum::Router;
use tower_http::services::ServeDir;

use crate::state::AppState;

use super::config::StaticSurface;

/// Merge a hardened [`ServeDir`] tree when static hosting is enabled.
pub fn router(_state: &AppState, surface: &StaticSurface) -> Router<AppState> {
    let service = ServeDir::new(surface.root.clone()).append_index_html_on_directories(true);
    Router::new().nest_service(&surface.prefix, service)
}