#rocket #cache #rocket-web #cache-control #max-age

rocket_cc_file_server

为 Rocket 网页框架提供更好缓存控制的自定义 FileServer

2 个版本

0.1.0-beta.12022年9月7日
0.1.0-alpha.12022年7月2日

网页编程 中排名 #1611

MIT 许可证

17KB
189

Rocket 缓存控制 FileServer

一个自定义的 Rocket FileServer 实现,支持缓存控制头。CCFileServer 可以作为 Rocket 的 FileServer 的直接替换。

设置自己的缓存规则,同时保留 Rocket 的 FileServer 选项

使用起来非常简单

#[launch]
fn rocket() -> Rocket<Build> {
    let options = CCOptions::builder()
            .max_age(Some(300))
            .no_cache(Some(()));
  
    rocket::build()
        .mount("/assets", CCFileServer::from("www/public/assets"))
        .mount("/js", CCFileServer::new("www/public/js", options))
}

用法

以与挂载正常 Rocket FileServer 相同的方式挂载 CCFileServer。

此外,您需要提供一个 CCOptions 结构来配置 CCFileServer 的头。所有具有 Some 值的字段都将设置为头。

待办事项

目前它只是一个原型。还有一些事情要做

  • 移植 Rocket Options
  • 实现所有缓存选项
    • max-age 头
    • public/private,no_cache 和 no_store
    • 提供可选函数来计算过期日期
    • 实现 E-tags
  • 更干净的 API

依赖关系

~15–50MB
~799K SLoC