Javascript 盖茨比MDX显示标题和slug,但没有';找不到页面
我正在学习盖茨比,我想在博客页面上使用MDX。我按照教程以编程方式创建页面 我可以在我的GraphQL中看到它们,显示所有文章的列表时使用了它们的标题和slug,但是当我单击链接打开它们或键入它们的地址时,我有一个404页面。你知道它从哪里来吗 这是我的代码: gatsby-node.js:Javascript 盖茨比MDX显示标题和slug,但没有';找不到页面,javascript,reactjs,graphql,gatsby,Javascript,Reactjs,Graphql,Gatsby,我正在学习盖茨比,我想在博客页面上使用MDX。我按照教程以编程方式创建页面 我可以在我的GraphQL中看到它们,显示所有文章的列表时使用了它们的标题和slug,但是当我单击链接打开它们或键入它们的地址时,我有一个404页面。你知道它从哪里来吗 这是我的代码: gatsby-node.js: exports.onCreateNode = ({ node, actions, getNode }) => { const { createNodeField } = actions
exports.onCreateNode = ({ node, actions, getNode }) => {
const { createNodeField } = actions
if (node.internal.type === "Mdx") {
const value = createFilePath({ node, getNode })
createNodeField({
name: "slug",
node,
value: `/blog${value}`,
})
}
}
gatsby-config.js:
plugins: [
{
resolve: `gatsby-plugin-mdx`,
options: {
defaultLayouts: { default: path.resolve('./src/layouts/post.js') },
extensions: [`.mdx`, `.md`],
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
name: `posts`,
path: `${__dirname}/src/posts`
}
},
],
index.js(带列表):
模板:
<div>
<div className="content" dangerouslySetInnerHTML={{ __html: post.html }}></div>
</div>
export const pageQuery = graphql`
query BlogPostQuery($id: String) {
mdx(id: { eq: $id }) {
id
body
frontmatter {
title
}
}
}
`
如果你想测试,我做了回购:
谢谢你的回答 您缺少页面创建部分。在您的
gatsby node.js
中添加以下内容:
const path=require(“路径”)
exports.createPages=异步({graphql,actions,reporter})=>{
//从actions对象中解构createPage函数
const{createPage}=actions
常量结果=等待图形ql(`
质疑{
allMdx{
边缘{
节点{
身份证件
田地{
鼻涕虫
}
}
}
}
}
`)
if(result.errors){
reporter.panicOnBuild('如果问题已经解决,请接受答案以结束问题。
<div>
<div className="content" dangerouslySetInnerHTML={{ __html: post.html }}></div>
</div>
export const pageQuery = graphql`
query BlogPostQuery($id: String) {
mdx(id: { eq: $id }) {
id
body
frontmatter {
title
}
}
}
`