我在尝试重新验证我网站上的所有页面,
问题是我必须一页一页地写
...
try {
await res.unstable_revalidate(
`/`
);
await res.unstable_revalidate(
`/about`
;
await res.unstable_revalidate(
`/shop`
);
...
return res.json({ revalidated: true });
} catch (err) {
return res.status(500).send('Error revalidating');
}
所以我的问题是是否有一种方法可以按需(使用unstable_revalidate())重新验证我网站的所有页面,或者我必须逐页进行?
1条答案
按热度按时间wko9yo5t1#
Next.js目前没有内置的方法来一次重新验证所有页面。我创建了一个方法,它返回所有静态(例如js)和动态(例如,[slug].js)页面,看起来像这样:
在我的例子中,我无论如何都需要这个函数来创建一个动态的sitemap.xml。
getProductUrls
可以返回产品页面的动态页面URL,例如重新验证API路由如下所示:由于next.js要求所有URL都带有一个尾随和一个前导斜杠以进行重新验证,因此如果还没有出现,则作为第一步添加这些URL。
希望这对你有帮助!