【问题标题】:Why is "no crate_relative in serve" when rust rocket_contrib?为什么在 rust rocket_contrib 时“服务中没有 crate_relative”?
【发布时间】:2021-03-27 17:35:23
【问题描述】:

我正在尝试通过我惯用的翻来覆去和运行示例的方法来学习一些 rust。

rust_contrib api 文档上的这个页面让我觉得我可以像这样提供静态文件https://api.rocket.rs/master/rocket_contrib/serve/struct.StaticFiles.html...

use rocket_contrib::serve::StaticFiles;
use rocket_contrib::serve::crate_relative;

...

fn main() {
    rocket::ignite()
        .mount("/content", StaticFiles::from(crate_relative!("content")))
        .mount("/", routes![index])
        .mount("/api", routes![hello, new_book])
        .register(catchers![not_found]) 
        .attach(Template::fairing())
        .launch();
}

相反,编译器对我咆哮...

    error[E0432]: unresolved import `rocket_contrib::serve::crate_relative`
 --> src/main.rs:9:5
  |
9 | use rocket_contrib::serve::crate_relative;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `crate_relative` in `serve`

Cargo.toml 看起来像这样...

[package]
name = "rocket-web"
version = "0.1.0"
authors = ["Nunya B. Znas <dontworry@bout.it>"]
edition = "2018"

[dependencies]
rocket = "0.4.5"
serde = {version = "1.0", features = ["derive"]}

[dependencies.rocket_contrib]
version = "0.4.5"
features = ["handlebars_templates", "tera_templates"]

我做了什么得罪了锈神?

谢谢

【问题讨论】:

    标签: rust rust-cargo rust-rocket


    【解决方案1】:

    您正在查看的文档是 Rocket 的 master 分支,该分支目前代表尚未发布的 0.5 版本。 Rocket 0.4.5版没有crate_relative

    对于解决方法,您可以查看0.4 docs 的说法:

    use rocket_contrib::serve::StaticFiles;
    
    fn main() {
        rocket::ignite()
            .mount("/", StaticFiles::from(concat!(env!("CARGO_MANIFEST_DIR"), "/static")))
            .launch();
    }
    

    【讨论】:

    • 成功了!谢谢!总有一天我会很酷的成为火箭大师。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多