我已经用 actix-web 定义了一个端点,如下所示:
#[derive(Deserialize)]
struct RenderInfo {
filename: String,
}
fn render(info: actix_web::Path<RenderInfo>) -> Result<String> {
// ...
}
App::new()
.middleware(middleware::Logger::Default())
.resource("/{filename}", |r| r.get().with(render))
我遇到的问题是原始 HTML 显示在浏览器中,而不是被渲染。我认为内容类型设置不正确。
我看到的大多数 actix-web 示例都用于impl Responder
返回类型,但我无法弄清楚如何解决产生的类型推断问题。原因似乎与返回基于标准failure::Error
的类型的文件操作有关。看起来 actix_web 需要实现一个特殊WebError
的来阻止错误的意外传播。对于这个特定的例子,我并不在意,因为它更像是一个内部工具。