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

使用gatsby-source-strapi插件时返回403错误的原因是什么

gatsby-source-strapi v2 集成Strapi报403错误解决方案

核心原因

gatsby-source-strapi@^2.0.0 版本相较v1版本重构了拉取逻辑,除业务内容接口外,会默认请求Strapi的内容类型结构、权限配置等系统接口完成Gatsby节点生成,仅给自定义集合开find/findOne权限会直接触发403拦截。

修复步骤

  • 补全公共角色必需权限
    进入Strapi后台「设置-角色与权限-公共角色」配置页,除已开启的ekam集合find、findOne权限外,必须勾选以下系统权限后保存:
    • 内容类型生成器(content-type-builder)分类下所有get类权限,用于拉取内容类型schema
    • 上传(upload)分类下find权限,兼容媒体字段拉取
    • 用户权限(users-permissions)分类下getPermissions、getRoles权限,用于插件校验权限配置
  • 修正gatsby-config.js插件配置
    v2版本配置字段和v1不兼容,禁止沿用旧版contentTypes字段,正确配置参考:
    module.exports = {
      plugins: [
        {
          resolve: "gatsby-source-strapi",
          options: {
            apiURL: "http://localhost:1337", // 替换为实际Strapi服务根地址,不要额外拼接/api后缀
            collectionTypes: ["ekam"], // 对应自定义集合的pluralName,和你创建的ekam集合匹配即可
            singleTypes: [],
          },
        },
      ],
    }
    
  • 清缓存重启服务
    配置修改完成后先执行gatsby clean清除本地构建缓存,再重新运行gatsby develop即可。残留缓存会保留之前的鉴权失败状态,导致权限配置正确后依然报错。

常见踩坑:如果Strapi配置了全局api前缀、或者部署在非根路径下,apiURL只需要写到Strapi服务的根域名/端口即可,插件会自动拼接接口路径,手动加后缀会导致路径匹配错误触发403/404。

内容的提问来源于stack exchange,提问作者Ek4m

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:51:25