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

NextJS v13生产环境_data接口404但直接访问正常求助

NextJS 13生产环境_data目录AJAX请求404问题排查提示

我有一个部署在自建Kubernetes集群的NextJS(v13)应用,生产环境中多数来自_data目录的AJAX JSON数据请求返回404,但直接在浏览器中加载这些URL却不会出现404错误。开发版本一切正常,网站地址为https://sportsdemy.com。不确定从何处开始调试,希望能得到提示或方向。

以下是我的NextJS配置文件:

/** @type {import('next').NextConfig} */
const nextConfig = {
    reactStrictMode: true,
    images: {
        domains: [
            'media.api-sports.io',
            'media-2.api-sports.io',
            'media-3.api-sports.io',
        ],
    },
    experimental: {
        swcMinify: true,
    },
    compiler: {
        styledComponents: true,
    },
    output: 'standalone',
};

module.exports = nextConfig;

404错误截图:
404错误截图

直接访问可正常获取JSON的URL示例:
https://sportsdemy.com/_next/data/lgSmKzzVjSPr2y95PaCfz/matches/falcons-vs-marimoo/90120.json?slug=falcons-vs-marimoo&matchId=90120


排查方向

  • 对比请求头差异:抓包查看AJAX请求和直接浏览器访问的请求头(如Accept、Referer),K8s的Ingress或反向代理可能对特定请求头的请求做了错误路由
  • 检查静态文件部署完整性:进入K8s Pod,查看容器内_next/data目录是否存在对应JSON文件,确认部署时静态资源是否完整同步
  • 验证Ingress路由规则:检查自建K8s的Ingress配置(比如Nginx Ingress),看是否对_next/data路径有rewrite、路径匹配等规则,导致AJAX请求被拦截或转发错误
  • 排查缓存机制:如果使用了CDN或集群内缓存组件,检查缓存规则是否缓存了旧的404响应,或者静态数据的缓存策略是否冲突
  • 查看NextJS日志:查看Pod内NextJS的运行日志,确认静态数据生成(如getStaticProps)过程中是否有报错,导致部分数据文件未生成
  • 检查路径大小写一致性:确认AJAX请求的路径和实际文件系统中的路径是否存在大小写差异,部分K8s容器的文件系统是区分大小写的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:30:15