静态文件服务

概述

Silent框架提供了高效的静态文件服务功能,让您能够轻松地为Web应用提供静态资源。本指南将介绍如何配置和优化静态文件服务。

基本用法

1. 配置静态文件服务

use silent::prelude::*;

async fn create_app() -> Router {
    let app = Router::new();
    app.static_dir("/static", "static")
}

2. 目录结构

my-app/
├── static/
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── app.js
│   └── images/
│       └── logo.png
└── src/
    └── main.rs

3. 访问静态文件

性能优化

  1. 缓存策略

    • 配置适当的缓存头

    • 使用ETag和Last-Modified

    • 实现浏览器缓存

  1. 压缩

    • 启用Gzip/Brotli压缩

    • 压缩静态资源

    • 配置压缩级别

  1. 资源优化

    • 合并CSS/JS文件

    • 压缩图片

    • 使用WebP格式

安全配置

  1. 访问控制

    • 限制文件类型

    • 设置访问权限

    • 防止目录遍历

  1. 安全头部

    • 设置Content-Security-Policy

    • 配置X-Content-Type-Options

    • 添加X-Frame-Options

高级特性

  1. 条件请求处理

app.static_dir("/static", "static") .with_conditional_request(true)

  1. 自定义中间件

app.static_dir("/static", "static") .with_middleware(custom_middleware)

Last updated