在 Vapor 中的 /Views 中查找嵌套文件夹
Find nested folders inside /Views in Vapor
我正在尝试在 Views
目录中组织我的 Leaf 视图,但无法在 Views
中创建嵌套目录。我有一个这样的header
<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")
}
但我猜它只会直接在 Views
中查找 test.leaf
文件。如何将 Leaf 文件放入 Views
内的嵌套文件夹中?
req.view() 始终指向默认文件夹。如果您转到 LeafProvider class,您将看到如下默认设置。
viewsDir: dir.workDir + "Resources/Views"
对于您的情况,您需要从正确的路径进行渲染 render("TestFolder/test")
。请参阅下面的代码。
router.get("/test") { req -> Future<View> in
return try req.view().render("TestFolder/test")
}
我正在尝试在 Views
目录中组织我的 Leaf 视图,但无法在 Views
中创建嵌套目录。我有一个这样的header
<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")
}
但我猜它只会直接在 Views
中查找 test.leaf
文件。如何将 Leaf 文件放入 Views
内的嵌套文件夹中?
req.view() 始终指向默认文件夹。如果您转到 LeafProvider class,您将看到如下默认设置。
viewsDir: dir.workDir + "Resources/Views"
对于您的情况,您需要从正确的路径进行渲染 render("TestFolder/test")
。请参阅下面的代码。
router.get("/test") { req -> Future<View> in
return try req.view().render("TestFolder/test")
}