Iron 将 html 呈现为文本
Iron renders html as text
我的 Iron Web 应用程序的一部分:
lazy_static! {
pub static ref TEMPLATES: Tera = {
let mut tera = compile_templates!("templates/**/*");
tera.autoescape_on(vec!["html", ".sql"]);
tera
};
}
fn index(_: &mut Request) -> IronResult<Response> {
let ctx = Context::new();
Ok(Response::with((iron::status::Ok, TEMPLATES.render("home/index.html", &ctx).unwrap())))
}
它将 HTML 模板呈现为浏览器中的文本。为什么不 HTML?
那是因为您没有设置内容的 MIME 类型。
有关如何解决此问题的完整示例,请参阅 Iron's own examples。
一种可能是:
use iron::headers::ContentType;
fn index(_: &mut Request) -> IronResult<Response> {
let ctx = Context::new();
let content_type = ContentType::html().0;
let content = TEMPLATES.render("home/index.html", &ctx).unwrap();
Ok(Response::with((content_type, iron::status::Ok, content)))
}
我的 Iron Web 应用程序的一部分:
lazy_static! {
pub static ref TEMPLATES: Tera = {
let mut tera = compile_templates!("templates/**/*");
tera.autoescape_on(vec!["html", ".sql"]);
tera
};
}
fn index(_: &mut Request) -> IronResult<Response> {
let ctx = Context::new();
Ok(Response::with((iron::status::Ok, TEMPLATES.render("home/index.html", &ctx).unwrap())))
}
它将 HTML 模板呈现为浏览器中的文本。为什么不 HTML?
那是因为您没有设置内容的 MIME 类型。
有关如何解决此问题的完整示例,请参阅 Iron's own examples。
一种可能是:
use iron::headers::ContentType;
fn index(_: &mut Request) -> IronResult<Response> {
let ctx = Context::new();
let content_type = ContentType::html().0;
let content = TEMPLATES.render("home/index.html", &ctx).unwrap();
Ok(Response::with((content_type, iron::status::Ok, content)))
}