0

我正在使用 Next.js (SSR) 和 Storyblok (Headless CMS) 并使用 Storyblok 内容交付 API 从 Storyblok 获取内容的网站上工作。最初,它使用 SSG 方法查看可用链接,然后从那里生成页面,这就是 Next/StoryBlok 教程的大多数向您展示的方式,但是,我需要使用 SSR 方法。

我有一个页面,它有一个默认的 slug,pages/industries然后在getServerSideProps方法中,我正在slug从传递的上下文参数中寻找。如果页面没有在预览模式下使用,那么它将使用query.slug数据来构建要在 StoryBlok JS 客户端包中使用的路径 ( await Storyblok.get(url, sbParams);)

但是,当real_path已配置为另一个值 ( /industry) 时,query.slug或 将resolved_path更新为实际路径值。查询API时,它是404s,因为实际路由仍然在pages/industries并且这个原始值不在param中contextgetServerSideProps

我认为的一种解决方案是使用查询所有可用链接cdn/links并将 slug 与 real_path 进行比较,然后根据该比较获取故事 ID,但这似乎不正确(目前正在尝试使其工作和扩展) .

这在预览模式下不是问题,因为请求将 Story ID 传递给我,因此很容易查询 API。

这是查看页面的响应,而不是在预览模式下,您可以看到值。

 query: { 
  slug: [ 'industry' ] },
  resolvedUrl: '/industry',
  params: { slug: [ 'industry' ] },
  locales: undefined,
  locale: undefined,
  defaultLocale: undefined
}

我怎样才能得到原始的 API 链接来查询?

4

0 回答 0