404在请求单个条目时

发布于 2025-01-27 05:26:54 字数 448 浏览 3 评论 0原文

我正在尝试使用GetEntry()方法从内容的CMS请求单个条目。我不断获得404。我真的不明白我在做什么错。

  export async function getStaticProps({ params }) {
  const p = params.id;
  const client = contentful.createClient({
    space: process.env.CONTENTFUL_SPACE_ID,
    environment: process.env.CONTENTFUL_ENVIRONMENT_ID,
    accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
  });
  const entry = await client.getEntry(p);
  return { props: { entry: entry } };
}

I am trying to request a single entry from contentful CMS with the getEntry() method. I keep getting a 404. I really don't understand what am I doing wrong.

  export async function getStaticProps({ params }) {
  const p = params.id;
  const client = contentful.createClient({
    space: process.env.CONTENTFUL_SPACE_ID,
    environment: process.env.CONTENTFUL_ENVIRONMENT_ID,
    accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
  });
  const entry = await client.getEntry(p);
  return { props: { entry: entry } };
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扎心 2025-02-03 05:26:54

我创建了一个小型项目来复制问题,但不能。它对我来说很好。这就是我的示例代码的样子:

import {createClient} from 'contentful'

export default function Comp() {
    return (
        <div>
            Hello
        </div>
    )
}

export async function getStaticProps({ params }) {
    const p = params.id;
    const client = createClient({
      space: process.env.CONTENTFUL_SPACE_ID,
      environment: process.env.CONTENTFUL_ENVIRONMENT_ID,
      accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
    });
    const entry = await client.getEntry(p);
    return { props: { entry: entry } };
}

export async function getStaticPaths() {
    const client = createClient({
        space: process.env.CONTENTFUL_SPACE_ID,
        environment: process.env.CONTENTFUL_ENVIRONMENT_ID,
        accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
    });
    const entry = await client.getEntries({
        content_type: "blogPost"
    })
    const paths = entry.items.map(item => {return {params: {id: item.sys.id}}});
    return { paths, fallback:true}
}

您可能会得到404,因为可以正确配置路径。如果以上代码示例无济于事,请随时链接回购或共享更多详细信息:)

I created a small project to replicate the issue, but I couldn't. It works fine for me. This is what my sample code looks like:

import {createClient} from 'contentful'

export default function Comp() {
    return (
        <div>
            Hello
        </div>
    )
}

export async function getStaticProps({ params }) {
    const p = params.id;
    const client = createClient({
      space: process.env.CONTENTFUL_SPACE_ID,
      environment: process.env.CONTENTFUL_ENVIRONMENT_ID,
      accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
    });
    const entry = await client.getEntry(p);
    return { props: { entry: entry } };
}

export async function getStaticPaths() {
    const client = createClient({
        space: process.env.CONTENTFUL_SPACE_ID,
        environment: process.env.CONTENTFUL_ENVIRONMENT_ID,
        accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
    });
    const entry = await client.getEntries({
        content_type: "blogPost"
    })
    const paths = entry.items.map(item => {return {params: {id: item.sys.id}}});
    return { paths, fallback:true}
}

You might be getting a 404 because the paths might be correctly configured. If the above code sample doesn't help, feel free to link the repo or share more details :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文