我正在尝试创建一个只有一页来处理所有路线的 Gatsby 项目。我有这样的索引页面:
const App = () => {
return <Router>
<Home path="/"/>
<Login path="/login" />
<Content path="/content" />
</Router>
}
on src/pages
我只有的文件夹index.js
我怎样才能让这个页面处理所有的路由?
检查盖茨比文档(https://www.gatsbyjs.com/docs/client-only-routes-and-user-authentication/ https://www.gatsbyjs.com/docs/client-only-routes-and-user-authentication/)我知道我可以使用该插件gatsby-plugin-create-client-paths
像这样:
{
resolve: `gatsby-plugin-create-client-paths`,
options: { prefixes: [`/app/*`] },
},
如果我创建一个名为的页面,这效果很好app.js
使用反应路由器。所以所有的路线/app/*
转到此页面。
但是我怎样才能在根网址上进行这种重定向:/
。我想让任何路线/*
进入索引页:index.js
关于如何执行此操作有什么建议吗? :)
Setup index.js
像这样:
const IndexPage = () => {
return (
<Router>
<Home path="/"/>
<Login path="/login" />
<Content path="/content" />
</Router>
)
}
export default IndexPage
and in gatsby-node.js
:
exports.onCreatePage = ({ page, actions }) => {
const { createPage } = actions
if (page.path === `/`) {
page.matchPath = `/*`
createPage(page)
}
}
Restart gatsby develop
索引页面将处理您设置的路线。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)