43 个版本
0.10.5 | 2023 年 11 月 3 日 |
---|---|
0.10.3 | 2022 年 11 月 3 日 |
0.10.2 | 2022 年 5 月 10 日 |
0.10.1 | 2022 年 3 月 19 日 |
0.6.4 | 2018 年 11 月 18 日 |
在 #rocket-framework 中排名 3
每月下载量 57
在 4 crate 中使用
26KB
528 行
Rocket 框架静态资源包含
这是一个提供宏 static_resources_initializer!
和 static_response_handler!
的 crate,用于从您的 Rust 项目静态包含文件,并快速使它们成为 HTTP 响应源。
示例
#[macro_use]
extern crate rocket;
#[macro_use]
extern crate rocket_include_static_resources;
use rocket::State;
use rocket_include_static_resources::{EtagIfNoneMatch, StaticContextManager, StaticResponse};
static_response_handler! {
"/favicon.ico" => favicon => "favicon",
"/favicon-16.png" => favicon_png => "favicon-png",
}
#[get("/")]
fn index(
static_resources: &State<StaticContextManager>,
etag_if_none_match: EtagIfNoneMatch,
) -> StaticResponse {
static_resources.build(&etag_if_none_match, "html-readme")
}
#[launch]
fn rocket() -> _ {
rocket::build()
.attach(static_resources_initializer!(
"favicon" => "examples/front-end/images/favicon.ico",
"favicon-png" => "examples/front-end/images/favicon-16.png",
"html-readme" => ("examples", "front-end", "html", "README.html"),
))
.mount("/", routes![favicon, favicon_png])
.mount("/", routes![index])
}
static_resources_initializer!
用于将文件包含到您的可执行二进制文件中。您需要指定每个文件的名称及其相对于包含您的包清单的目录的路径。例如,上面的示例使用 favicon 来表示文件 included-static-resources/favicon.ico,使用 favicon_png 来表示文件 included-static-resources/favicon.png。名称不能重复。为了减少编译时间并允许热重载资源,文件将在您使用 release 配置时与您的可执行二进制文件一起编译。static_response_handler!
用于快速创建用于检索静态资源的 GET 路由处理程序。
参见 examples
。
Crates.io
https://crates.io/crates/rocket-include-static-resources
文档
https://docs.rs/rocket-include-static-resources
许可证
依赖关系
~16–50MB
~810K SLoC