一个用于 Vapor 的动态站点地图生成器。
将该软件包添加到您的 Package.swift
文件中
let package = Package(
// ...
dependencies: [
// 💧 A server-side Swift web framework.
.package(url: "https://github.com/vapor/vapor.git", from: "4.0.0"),
.package(url: "https://github.com/vapor-community/vapor-sitemap.git", from: "1.0.0"), // Add this line
],
targets: [
.target(
name: "App",
dependencies: [
.product(name: "Vapor", package: "vapor"),
.product(name: "VaporSitemap", package: "vapor-sitemap"), // Add this line
]
),
],
// ...
)
首先,我们需要创建一些函数来告知中间件该怎么做
此函数的目的是告知中间件是否应该处理某个路径。一个基本的实现如下
func isSitemap(_ req: Request) -> Bool {
return req.url.path == "/sitemap.xml"
}
通过此实现,您告知中间件仅处理 /sitemap.xml
。
在某些情况下,您可能想要生成多个站点地图。为此,只需在此函数中处理所有您想要的路径。
此函数的目的是给出所有要放入指定站点地图中的 URL。一个示例实现如下
func generateURLs(_ req: Request) -> [SitemapURL] {
let prefix = "https://www.example.com/"
let paths = ["home", "page1", "folder/page2"]
return paths.map { path in
prefix + path
}
.map(SitemapURL.init)
}
在您的 configure.swift
文件中,添加相应的中间件
app.middleware.use(SitemapMiddleware(
isSitemap: isSitemap,
generateURLs: generateURLs
))
您已准备就绪!
此软件包由 Nathan Fallet 开发和维护。