在Vapor中的/ Views中查找嵌套文件夹

时间:2018-10-13 00:16:15

标签: swift vapor

我正在尝试在Views目录内组织我的Leaf视图,但是无法在Views内创建嵌套目录。我有这样的标题

<header>
    <nav>
        <ul>
            <li><a href="/test">Test</a></li>
        </ul>
    </nav>
</header>

/test实际上包含在Views/TestFolder中,因为我可能认为它是在Views文件夹中递归搜索的,但事实并非如此。如果我尝试访问test页,则会收到以下错误(我认为这很合理):

{
  "error": true,
  "reason": "No file was found at path: /Users/eirik/Documents/Utvikling/Jobb/AaseSoftware/Resources/Views/test.leaf"
}

我也不知道如何在routes.swift中为此定义路由。现在我正在这样做:

router.get("/test") { req -> Future<View> in
    return try req.view().render("test")
}

但是我想它只会在test.leaf内部直接寻找Views文件。如何将Leaf文件放在Views内的嵌套文件夹中?

1 个答案:

答案 0 :(得分:4)

req.view()始终指向默认文件夹。如果转到LeafProvider类,将看到以下默认设置。

viewsDir: dir.workDir + "Resources/Views"

对于您的情况,您需要从正确的路径render("TestFolder/test")进行渲染。请参见下面的代码。

 router.get("/test") { req -> Future<View> in
        return try req.view().render("TestFolder/test")
    }