我现在正在使用Warp with Rust编写一个应用程序,我想把它打包到一个独立的可执行文件中,但顾名思义,warp::fs::dir似乎是从文件系统加载它.

有没有办法把静态文件Bundle 成扭曲滤镜?或者,是否有其他框架支持这一点?

只是为了澄清一下,我说的"Bundle "指的是这样的东西:

fn get_file() -> &str {
    include_str!("file.html")
}

推荐答案

看起来你在寻找static_dir crate个宏中的static_dir个.

引用documentation人的话:

创建一个筛选器,该筛选器为基址$path处的目录提供服务 请求路径.

它的行为很像Warp的fs::dir,但不是提供来自 运行时的文件系统,将嵌入要提供服务的目录 在编译时转换为您的二进制文件.

如果提供的路径是相对路径,则它将相对于项目 根目录(根据CARGO_MANIFEST_DIR环境变量).

use static_dir::static_dir;
use warp::Filter;

// Matches requests that start with `/static`, and then uses the
// rest of that path to lookup and serve a file from `/www/static`.
let route = warp::path("static").and(static_dir!("/www/static"));

// For example:
// - `GET /static/app.js` would serve the file `/www/static/app.js`
// - `GET /static/css/app.css` would serve the file `/www/static/css/app.css`

Rust相关问答推荐

什么样的 struct 可以避免使用RefCell?

如何处理动态 struct 实例化?

Rust类似功能是C++命名空间吗?

为什么我们需要std::thread::scope,如果我们可以使用thread.join()在函数的生命周期内删除引用?

有没有一种惯用的方法来判断VEC中是否存在变体?

Rust移动/复制涉及实际复制时进行检测

获取已知数量的输入

带引脚和不带引脚的比较功能

如何返回 struct 体中向量的切片

Rust 重写函数参数

有什么方法可以通过使用生命周期来减轻嵌套生成器中的当生成器产生时borrow 可能仍在使用错误?

在给定 Rust 谓词的情况下,将 Some 转换为 None 的惯用方法是什么?

Rust 中的方法调用有什么区别?

判断对象是 PyDatetime 还是 Pydate 的实例?

为什么我可以同时传递可变和不可变引用?

如果我不想运行析构函数,如何移出具有析构函数的 struct ?

当特征函数依赖于为 Self 实现的通用标记特征时实现通用包装器

你能用 Rust 和 winapi 制作 Windows 桌面应用程序吗?

如何将 while 循环内的用户输入添加到 Rust 中的向量?

为什么 Rust 标准库同时为 Thing 和 &Thing 实现特征?