Vapor 不通过 Leaf 渲染文件

Vapor not rendering file through Leaf

我正在尝试将骨架模板视图添加到最近的 Vapor 2 应用程序中,到目前为止,该应用程序仅使用 MySQL 数据库生成 JSON 输出。如果我使用以下最少的代码:

    get("viewTest")
    { req in
        let params = try Node(node: [ "name": "nick"])
        return try self.view.make("index",Node(node:params))
    }

文件 index.leaf 存在于 Resources/Views 文件夹中,文档建议省略 .leaf 后缀没问题,但这样做会得到:

[Data File Error: unable to load file at path /Users/test/Library/Mobile Documents/com~apple~CloudDocs/Apps/Vapor/testServer/Resources/Views/index]

但是,如果我明确地输入后缀,self.view.make("index.leaf",Node(node:params)),文件的内容将被输出而不被渲染:

    #extend("base") #export("body") {#(name)}

我曾尝试将代码直接放入 Main.swift 中,但将其放入处理程序中并没有什么区别。我也尝试过从头开始创建一个新的 Vapor 2 项目(使用全新安装的 vapor)并且它的行为相同。如此基础的东西不能开箱即用,这似乎很奇怪。

原来虽然Droplet的默认渲染器是'leaf',但是Config中的默认设置是'static'。放:

 "view": "leaf"

进入 Config/drop.json 解决了问题。