我正在通过Contentful构建具有多种语言的动态盖茨比网站。我在pageContext
的gatsby-node.js
对象中传递页面的ID,以获取每个页面上的必要内容,但是在根URL /
上,pageContext
对象内部的数据丢失。
在我的index.js
文件中,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,
},
})
我在[C0以上]输出以下内容:
console.log
我可以看到每个页面都已创建。在除索引页面(“ /”)之外的任何其他页面上,isCreatedByStatefulCreatePages都设置为/virksomhed
/konsulent
/kontakt
/ <-- Page context is empty here
/om-os
/en/company
/en/consultant
/en/contact
/en/
/en/about-us
。
[我怀疑盖茨比以某种方式覆盖了根URL的“ createPage”,但我在文档中找不到任何描述它的内容。
任何有此经验的人?
是,默认情况下,Gatsby为false
中的每个js文件创建一个页面。尝试将模板移至src/pages
之类的其他文件夹,然后相应地调整src/templates
中component
的值。