Gatsby升级后GraphQL查询失效:fileAbsolutePath替代方案咨询
解决Gatsby新版中MDX查询fileAbsolutePath失效的问题
在新版Gatsby(尤其是搭配gatsby-plugin-mdx v3及以上版本)中,fileAbsolutePath字段已从MDX节点的过滤可用字段中移除,你可以通过以下两种方案恢复查询功能:
方案一:使用sourceInstanceName(推荐)
这种方式更规范可靠,需要先在gatsby-config.js中给posts目录的数据源配置name属性:
module.exports = { plugins: [ { resolve: `gatsby-source-filesystem`, options: { name: `posts`, path: `${__dirname}/content/posts/`, // 替换为你站点的posts目录路径 }, }, // 其他插件配置... ], }
之后修改GraphQL查询的过滤条件:
filter: { sourceInstanceName: { eq: "posts" } }
方案二:使用filePath直接匹配路径
如果不想修改数据源配置,可以用filePath字段替代原来的fileAbsolutePath,直接通过路径正则过滤:
filter: { filePath: { regex: "/posts/" } }
修改后的完整查询示例(以方案一为例)
query ($skip: Int!, $limit: Int!) { allMdx( filter: { sourceInstanceName: { eq: "posts" } } sort: { order: DESC, fields: frontmatter___date } skip: $skip limit: $limit ) { nodes { id frontmatter { alt title path slug date(formatString: "MMMM Do, YYYY") image { childImageSharp { fluid { ...GatsbyImageSharpFluid } } } } } } }
内容的提问来源于stack exchange,提问作者jeeeez
相关产品推荐
相关产品推荐

