通过 Gatsby createPages 节点 api 创建的页面,在部署到 Github 页面时不起作用
Pages created via the Gatsby createPages node api, not working when deployed to Github Pages
我正在使用 Gatsby createPages 节点 api 创建一些页面,如下所述:https://www.gatsbyjs.com/docs/programmatically-create-pages-from-data/#creating-pages
但是当我部署到 github 页面时,这些页面给出了 404,例如这个页面:https://giorgioremindme.github.io/probable-future
这是我的 gatsby-node-js 中的内容:
const fs = require(`fs`)
const yaml = require(`js-yaml`)
exports.createPages = ({ actions }) => {
const { createPage } = actions
const ymlDoc = yaml.safeLoad(fs.readFileSync(`./src/content/index.yaml`, `utf-8`))
ymlDoc.forEach(element => {
createPage({
path: element.path,
component: require.resolve(`./src/templates/basicTemplate.js`),
context: {
pageContent: element.content,
links: element.links,
},
})
})
}
https://github.com/GiorgioRemindme/giorgio-martini/blob/main/gatsby-node.js
虽然本地工作正常...
您可以通过单击您在此页面上看到的缩略图来访问这些新页面:https://giorgioremindme.github.io/giorgio-martini/code 忽略最后一个缩略图,它已损坏,缺少有效的 link,但其余的在本地工作,但未部署。
关于我需要做什么才能使此页面在部署时正常工作有什么想法吗?
如果您输入:https://giorgioremindme.github.io/giorgio-martini/code(没有尾部斜杠。您可以通过单击 header 中的“代码”link 将其删除)。
然后您导航,该网站运行流畅,没有 404 returned。
但是,如果您输入 https://giorgioremindme.github.io/giorgio-martini/code/(注意结尾的斜线),您的网页在尝试导航到它们时会 return 出现 404。
您的 gatsby-node.js
没有任何问题,因为页面已正确创建并且存在。您的问题在您的 in-app linking/navigation 中,因此在视图中。
尽管如此,我的猜测是您在手动添加路径前缀 /code
而 Gatsby link 应该自己做。手动构建 link 时尝试使用 withPrefix
helper。
Double-check 此行为和本地构建以确定问题的根源在哪里(本地或 GitHub 的环境中),因为解决方案可能会有所不同。
我正在使用 Gatsby createPages 节点 api 创建一些页面,如下所述:https://www.gatsbyjs.com/docs/programmatically-create-pages-from-data/#creating-pages
但是当我部署到 github 页面时,这些页面给出了 404,例如这个页面:https://giorgioremindme.github.io/probable-future
这是我的 gatsby-node-js 中的内容:
const fs = require(`fs`)
const yaml = require(`js-yaml`)
exports.createPages = ({ actions }) => {
const { createPage } = actions
const ymlDoc = yaml.safeLoad(fs.readFileSync(`./src/content/index.yaml`, `utf-8`))
ymlDoc.forEach(element => {
createPage({
path: element.path,
component: require.resolve(`./src/templates/basicTemplate.js`),
context: {
pageContent: element.content,
links: element.links,
},
})
})
}
https://github.com/GiorgioRemindme/giorgio-martini/blob/main/gatsby-node.js
虽然本地工作正常...
您可以通过单击您在此页面上看到的缩略图来访问这些新页面:https://giorgioremindme.github.io/giorgio-martini/code 忽略最后一个缩略图,它已损坏,缺少有效的 link,但其余的在本地工作,但未部署。
关于我需要做什么才能使此页面在部署时正常工作有什么想法吗?
如果您输入:https://giorgioremindme.github.io/giorgio-martini/code(没有尾部斜杠。您可以通过单击 header 中的“代码”link 将其删除)。
然后您导航,该网站运行流畅,没有 404 returned。
但是,如果您输入 https://giorgioremindme.github.io/giorgio-martini/code/(注意结尾的斜线),您的网页在尝试导航到它们时会 return 出现 404。
您的 gatsby-node.js
没有任何问题,因为页面已正确创建并且存在。您的问题在您的 in-app linking/navigation 中,因此在视图中。
尽管如此,我的猜测是您在手动添加路径前缀 /code
而 Gatsby link 应该自己做。手动构建 link 时尝试使用 withPrefix
helper。
Double-check 此行为和本地构建以确定问题的根源在哪里(本地或 GitHub 的环境中),因为解决方案可能会有所不同。