我正在通过 Contentful 构建一个具有多种语言的动态 Gatsby 网站。pageContext我在我的对象中传递页面的 IDgatsby-node.js以获取每个页面上的必要内容,但在根 URL 上/,我的pageContext对象内的数据丢失了。在我的index.js-file 中,pageContext根页面上的 是空的/,但参数pageContext.isCreatedByStatefulCreatePages设置为true. 但是,对于在对象中创建的每个其他页面gatsby-node.js,pageContext它都会按原样显示。我正在gatsby-node.js这样创建我的页面:const baseUrl = locale === "da" ? "/" : `/${locale}/`console.log(`${baseUrl}${slug ? slug : ""}`)createPage({ path: `${baseUrl}${slug ? slug : ""}`, component: path.resolve("./src/pages/index.js"), context: { id, slug, locale, },})我上面console.log的输出如下:/virksomhed/konsulent/kontakt/ <-- Page context is empty here/om-os/en/company/en/consultant/en/contact/en//en/about-us我可以看到每个页面都已创建。在索引页面 ("/") 以外的任何其他页面上,isCreatedByStatefulCreatePages 设置为false。我怀疑 Gatsby 以某种方式覆盖了根 URL 的“createPage”,但我无法在文档中找到任何描述它的内容。有这方面经验的人吗?
1 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
是的,Gatsby 默认为每个 .js 文件创建一个页面src/pages
。尝试将您的模板移动到其他文件夹,例如src/templates
并相应地调整component
in的值createPage()
。
添加回答
举报
0/150
提交
取消