此问题已在此处有答案:
Dynamic route prevents redirecting to 404 page in Next.js(2个答案)
11个月前关闭。
我正在寻找一个最佳做法,在服务器端呈现的页面上处理HTTP 404,如果所请求的页面没有一个底层的服务器端资源。
例如,假设请求的页面是http://localhost:3000/places/5
。在我的SSG实现中:
export async function getServerSideProps(context) {
const placeId = context.params.placeId;
const places = await getPlace(placeId);
if (!places.length) { /* is there anything here I can do to facilitate a 404? this place does not exist in the db */ }
return {
props: {
places[0],
},
};
}
这应该是不言自明的,但是如果请求的id,在本例中,5
不是我的DB中的一个位置,我如何将其作为HTTP 404处理?
1条答案
按热度按时间mwkjh3gx1#
你可以通过返回一个像下面代码一样的对象来做到这一点,使用
notFound: true
。以下是官方文档中的一句话:notFound
布尔值允许页面返回404
状态和404
页面。