在 Rust 中使用 warp 提供静态文件

2024-02-21

我在用warp使用 Rust 制作 Web 应用程序的库。我正在尝试提供静态文件。 我已阅读其文档Doc https://docs.rs/warp/0.2.0/warp/filters/fs/fn.dir.html.

这是我的代码片段

use serde::Deserialize;
use serde::Serialize;
use warp::path;
use warp::Filter;

#[tokio::main]
async fn main() {
    let static_assets = warp::path("static").and(warp::fs::dir("/www/static"));

    // let routes = get_routes.or(post_routes).or(static_assets).or(file_route);
    let routes = static_assets;

    warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
}

但是当我访问这条路时localhost:3030/static/index.js,它返回404回复

这是文件树

src
├── main.rs
└── www
    └── static
        └── index.js

这里的错误出奇地微不足道。路径/www/static是绝对的。为了使其工作,您必须将该目录放在文件系统的根目录中。通过使用相对路径,它可以工作:

#[tokio::main]
async fn main() {
    let route = warp::path("static").and(warp::fs::dir("www/static"));

    warp::serve(route).run(([127, 0, 0, 1], 3030)).await;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rust 中使用 warp 提供静态文件 的相关文章

随机推荐