【发布时间】:2021-07-29 19:08:40
【问题描述】:
所以目前,我正在使用前端的 Next Js 创建一个网站,并将内容用作我的 CMS。
我有不少页面使用内容函数来获取数据:
export async function getStaticProps() {
const client = createClient({
space: process.env.NEXT_CONTENTFUL_SPACE_ID,
accessToken: process.env.NEXT_CONTENTFUL_ACCESS_TOKEN,
});
const res = await client.getEntries({ content_type: "MYCONTENT" });
return {
props: {
MYCONTENT: res.items,
},
};
}
想象一下这段代码大约有 30 页。然后我使用此代码过滤和映射我需要的项目:
{MYCONTNET
.filter((e) => e.fields.tag === "design tools")
.map((content) => {
return (
<ToolsCard
key={content.fields.title}
title={content.fields.title}
para={content.fields.tagline}
url={content.fields.url}
img={content.fields.img.fields.file.url}
/>
);
})}
最近我遇到了一个问题,即并非所有项目都传递到前端。
我唯一的解决方案是在内容上重新发布内容,但是当我这样做时,它似乎会对其他页面产生影响。即使我尝试控制台日志,我也看不到正在传递的数据。
它显示了this image,这里是more detailed image
我不确定问题是什么,它工作正常,但是当我开始添加更多内容时,这个问题出现了。
如果有人可以提供帮助,那就太好了。提前致谢。
【问题讨论】:
-
您是否在控制台中遇到任何错误,或者只是看到的数据少于应有的数据?您可以尝试 npm run build 看看是否有任何错误吗?听起来您可能还想考虑将“createClient”代码移动到一个地方,而不是创建例如30 个客户端实例。可能是您受到速率限制或存在竞争条件。
-
嘿@whitep4nth3r,我认为你是对的,问题似乎可能是因为我在所有页面上都有 createClient 代码。将寻求单独创建。会让你知道它是否有效。感谢您的建议。
-
祝你好运!让我们希望它有效。
-
@whitep4nth3r 抱歉,您如何将 createClient 代码移动到一个位置并将其引用到其他页面?
标签: next.js frontend content-management-system contentful contentful-api