我正在尝试使用Tera在Rust中构建一个web应用程序,每次在下面的render()调用中都会出现恐慌。代码块的示例:
async fn login(tera: web::Data<Tera>) -> impl Responder {
let mut data = Context::new();
data.insert("title", "Login");
let rendered = tera.render("login.html", &data).unwrap();
HttpResponse::Ok().body(rendered)
}链接到我的回购审查:https://github.com/ClusterberrySquirrels/oasis/blob/oasis_db/src/main.rs
我接到以下惊慌电话:
thread 'actix-rt:worker:0' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: TemplateNotFound("login.html"), source: None }', src/main.rs:101:53当我在index.html页面上这个项目开始时遇到同样的问题时,有些东西解决了这种恐慌。起初我以为是Tera引起了这个问题,但我没有找到任何步骤来解决它。最后,我做了一些事情,使它表现得像预期的那样,直到现在一切都很好。我希望能就如何解决这一问题和避免将来发生这种情况提出任何建议。
档案结构:
Project Folder\
templates\
login.html
index.html
src\
main.rs在我这边解决问题不一定是为了:
h 115wsl-set- default 2H 216h 117货物清洁H 218H 119>/code>删除目标文件夹,然后清除货物、货物建造、货物运行H 220<代码>H 121货物更新代码><代码G 223><代码G 223。
更新到问题:最少可重复的例子。
use actix_web::{HttpServer, App, web, HttpResponse, Responder};
use tera::{Tera, Context};
async fn index(tera: web::Data<Tera>) -> impl Responder {
let mut data = Context::new();
let posts = [
Post {
title: String::from("This is the first link"),
link: String::from("https://example.com"),
author: String::from("Nutrition-Tracker"),
},
Post {
title: String::from("This is the second Link"),
link: String::from("https://example.com"),
author: String::from("Other cool app"),
},
];
data.insert("title", "index");
data.insert("posts", &posts);
let rendered = tera.render("index.html", &data).unwrap(); // TemplateNotFound??
HttpResponse::Ok().body(rendered)
}
async fn login(tera: web::Data<Tera>) -> impl Responder {
let mut data = Context::new();
data.insert("title", "Login");
let rendered = tera.render("login.html", &data).unwrap(); // TemplateNotFound??
HttpResponse::Ok().body(rendered)
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
let tera = Tera::new("templates/**/*").unwrap();
App::new()
.data(tera)
.route("/", web::get().to(index))
.route("/login", web::get().to(login))
})
.bind("127.0.0.1:8000")?
.run()
.await
}发布于 2021-04-08 00:06:08
我解决了这个问题。我也在为这个应用程序运行kubernetes,我选择的端口在任意时间被kubernetes占用。但是,问题仍然存在,这是另一个线程的问题。
https://stackoverflow.com/questions/66897232
复制相似问题