微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在 rust Rocket_contrib 时“没有 crate_relative in serve”?

如何解决为什么在 rust Rocket_contrib 时“没有 crate_relative in serve”?

我正在尝试通过我通常的四处游荡和运行示例的方法来学习一些 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"]

我做了什么冒犯了锈神?

谢谢

解决方法

您正在查看的文档适用于 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();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。