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

Next.js 13 Beta Vercel静态构建报错:WordPress GraphQL请求问题

Next.js 静态生成部署Vercel崩溃,本地正常,疑似WordPress GraphQL API问题

我在使用Next.js结合fetch发起GraphQL请求生成静态页面时遇到了问题:

  • 创建了渲染超100条数据的列表页,通过Next的generateStaticParams为数据生成动态静态页
  • 本地构建完全正常,但部署到Vercel时构建崩溃,怀疑问题出在WordPress端
  • 替换数据来源为模拟API后,部署一切正常,进一步验证了是WordPress相关的问题

Vercel构建时的错误截图:
错误截图

我已经尝试过用其他API测试,未出现相同错误。

相关代码

[slug]/page.tsx

import { getTeachingBySlug, getTeachings } from "@/services"
import { WPSerializer } from "@/utils"

export const generateStaticParams = async () => {
    const teachings = await getTeachings()
    const { teachingList } = WPSerializer(teachings)

    return teachingList.map((teaching) => ({
        slug: teaching.slug,
    }))
}

const SingleTeaching = async ({ params }: { params: { slug: string } }) => {
    const teachingSingle = await getTeachingBySlug(params.slug)

    return (
        <div>
            <h1>
                Single Teaching
            </h1>
            <h2>{teachingSingle.documentBy.title}</h2>
        </div>
    )
}

export default SingleTeaching

getTeachings函数

const getTeachings = async (restOptions?: {}): Promise<WPDocuments> => {
    const response = await fetch("https://some-wp-site-base-url/graphql", {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            query: `
            query GetTeachings {
                documents(first: 1000) {
                    edges {
                        node {
                            title
                            slug
                            link
                            nauczania {
                                pdfFile
                                mediaUrlLink
                                file
                                description
                            }
                        }
                    }
                }
            }
            `,
            variables: {},
            ...restOptions
        })
    })

    const data = await response.json()

    return data.data
}

export default getTeachings

getTeachingBySlug函数

import { WPDocumentBySlug } from "@/types"

const getTeachingBySlug = async (slug: string, restOptions?: {}): Promise<WPDocumentBySlug> => {
  const response = await fetch("https://some-wp-site-base-url/graphql", {
    method: "POST",
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: `
        query TeachingBySlug ($slug: String = "") {
          documentBy(slug: $slug) {
            title
            nauczania {
              pdfFile
              mediaUrlLink
              file
            }
            link
          }
        }
      `,
      variables: { slug }
    }),
    ...restOptions
  })

  const data = await response.json()

  return data.data
}

export default getTeachingBySlug

环境信息

  • 操作系统:Windows 11
  • Node版本:18.12
  • Next版本:13.1.6

希望有人能帮我解决这个问题,谢谢 :)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:46:20