先看一下知乎404的页面
![](https://img.haomeiwen.com/i3004133/49cec0f4f78d01cc.png)
项目上的流程是这样的,先从url里面获取id
,通过id
去查这条记录在不在,不在要返回404页面,同时http的状态也是404
定制404页面只需要在layouts下面添加一个error.vue
就可以了
async asyncData({ params, error, res }) {
...
error({
statusCode: 404,
});
...
}
至于如何让A页面的http状态也为404,我陷入了逻辑死循环,因为是进入A页面之后才调用的接口,这个时候A页面的请求已经返回了,是无法再改变的,所以只能在生成A页面之前,先去查询存不存在,然后就想到了nuxtServerInit
,提供redirect
,还能发请求、设置store
...
其实只需要
async asyncData({ params, error, res }) {
...
res.statusCode = 404;
error({
statusCode: 404,
});
...
}
这真是踏破铁鞋无觅处...
有趣的是找到这个答案是因为我用了英文搜索
https://github.com/nuxt/nuxt.js/issues/2761
网友评论