#assets #rocket #fairing

rocket-assets-fairing

一个易于从配置目录提供静态资源并具有缓存策略的火箭整流罩

1 个不稳定版本

0.1.0 2022年1月8日

开发工具 中排名 1768

MIT 许可证

7KB
105 行代码(不包括注释)

Rocket Assets Fairing

rocket-assets-fairing 是 Rocket 的一个整流罩,用于从文件夹中轻松提供静态资源,并具有良好的缓存策略。

安装

将以下内容添加到您的 Cargo.toml

rocket-assets-fairing = "0.1"

用法

use assets_rocket_fairing::{Asset, Assets};

#[rocket::main]
async fn main() {
   rocket::build()
       .attach(Assets::fairing())
       .mount("/assets", routes![style])
       .launch()
       .await;
}

#[get("/style.css")]
async fn style(assets: &Assets) -> Option<Asset> {
   assets.open("style.css").await.ok()
}

配置

与 Rocket 的配置方式相同。

通过 Rocket.toml

[default]
assets_dir = "assets"
assets_max_age = 86400

或使用环境变量

  • ROCKET_ASSETS_DIR
  • ROCKET_ASSETS_MAX_AGE

lib.rs:

使用 Rocket 从配置的缓存策略中轻松提供静态资源。

此创建添加了一个用于提供静态资源的整流罩和响应器。您应该配置一个资源目录,附加整流罩,然后在任何您想要的路径上返回一个 Asset

用法

  1. 将您的资源添加到可配置的 assets_dir 目录(默认:{rocket_root}/assets)。
  2. 可选地使用 assets_max_age 配置缓存策略
  3. 附加 [Assets::fairing()] 并使用 [Assets::open()] 返回一个 Asset(指定相对文件路径)
use assets_rocket_fairing::{Asset, Assets};

#[rocket::main]
async fn main() {
   rocket::build()
       .attach(Assets::fairing())
       .mount("/assets", routes![style])
       .launch()
       .await;
}

#[get("/style.css")]
async fn style(assets: &Assets) -> Option<Asset> {
   assets.open("style.css").await.ok()
}

依赖项

~15–49MB
~797K SLoC