求助:Next.js 14中WPGraphQL Smart Cache与Apollo Client集成异常
问题:WPGraphQL Smart Cache集成Next.js 14 + Apollo Client不生效,无x-cache响应头
环境配置
- Next.js版本:14
- WordPress托管:DigitalOcean Droplet
- GraphQL插件:WPGraphQL Smart Cache
- Apollo Client:配置使用
cache-first获取策略 - GraphQL查询:获取
companySubmissions数据
当前配置与代码
WordPress配置


Apollo Client配置(lib/apollo.js)
import { ApolloClient, ApolloLink, HttpLink, InMemoryCache } from "@apollo/client"; const link = ApolloLink.from([ new HttpLink({ uri: `${process.env.NEXT_PUBLIC_WORDPRESS_API_URL}/graphql`, useGETForQueries: true, }), ]); export const client = new ApolloClient({ link, cache: new InMemoryCache(), defaultOptions: { query: { fetchPolicy: "cache-first", }, }, });
数据获取函数(graphql/resolvers/company.resolver.js)
export const usePartners = async () => { try { const { data, errors } = await client.query({ query: getCompanies, fetchPolicy: "cache-first", }); if (errors) { console.error('GraphQL errors:', errors); return { errors }; } return data; } catch (error) { console.error('Failed to fetch partners:', error); throw new Error(`Failed to fetch partners: ${error.message}`); } };
页面组件(app/partners/page.js)
import Partners from "@/components/partners"; import Image from "next/image"; import PartnerBanner from "@/assets/images/partnerBanner.png"; import LineHeader from "@/components/lineHeader"; import { usePartners } from "@/graphql/resolvers/company.resolver"; export default async function PartnersPage() { const { companySubmissions } = await usePartners(); return ( <div className="w-full 2xl:pt-48 md:pt-36 pt-28 px-6 py-5 2xl:max-w-[107rem] max-w-[80rem]"> <h3>hello world </h3> </div> ); }
内容的提问来源于stack exchange,提问作者David Takidze
相关产品推荐
相关产品推荐

