You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:16:56