我在 Gatsby 中制作 404
页面,希望在用户访问不存在的页面时,能够给出一个类似路径名的建议。如何获取网站中所有现有页面的数组?
我在 Gatsby 中制作 404
页面,希望在用户访问不存在的页面时,能够给出一个类似路径名的建议。如何获取网站中所有现有页面的数组?
Gatsby会将每个页面的信息暴露出来(无论是通过pages
文件夹还是createPage
API),作为名为allSitePage
的GraphQL字段。我倾向于在大多数项目中创建一个类似这样的钩子,以便可以轻松地获取这些信息:
import { graphql, useStaticQuery } from "gatsby"
const useInternalPaths = () => {
const {
pages: { nodes },
} = useStaticQuery(graphql`
{
pages: allSitePage {
nodes {
path
}
}
}
`)
return nodes.map(node => node.path)
}