You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt 3 404页面未找到错误处理及自定义404页面实现求助

Nuxt3 处理404错误及自定义404页面方案

为什么你的错误处理插件未生效

你之前创建的errorhandler.ts插件无法捕获H3Error: Page not found错误,核心原因是:nuxtApp.vueApp.config.errorHandler仅负责处理Vue组件树内部的客户端/服务端渲染错误,而路由未匹配的404错误属于Nitro服务器层的错误,不在Vue错误处理的覆盖范围内。


1. 抑制404错误日志输出

要避免每条404请求都生成日志,需要在Nitro服务器层捕获并处理这类错误,以下两种方式任选其一:

方式一:通过服务器中间件处理

在项目根目录创建server/middleware/handle-404.ts文件,代码如下:

export default defineEventHandler(async (event) => {
  try {
    // 继续处理请求,路由未匹配时会抛出404错误
    await send(event);
  } catch (error) {
    // 判定是否为404错误
    if (error instanceof Error && 'statusCode' in error && error.statusCode === 404) {
      // 标记响应状态码为404,同时阻止错误向上抛出
      event.res.statusCode = 404;
      return;
    }
    // 非404错误继续抛出,保留默认日志逻辑
    throw error;
  }
});

方式二:配置Nitro全局错误处理器

在项目根目录创建nitro.config.ts文件(若已存在则直接修改),添加全局错误处理逻辑:

export default defineNitroConfig({
  errorHandler: (error, event) => {
    if (error.statusCode === 404) {
      // 仅处理404错误,不输出冗余日志
      event.res.statusCode = 404;
      return { statusCode: 404, message: '页面未找到' };
    }
    // 其他错误按默认逻辑处理(保留日志)
    throw error;
  }
});

2. 创建自定义404页面

Nuxt3提供了极简的自定义404页面方案,直接在pages目录下创建[...notfound].vue文件即可:

<template>
  <div class="not-found-container">
    <h1>404</h1>
    <h2>页面未找到</h2>
    <p>你访问的链接不存在,请检查地址是否正确</p>
    <NuxtLink to="/" class="back-home-btn">返回首页</NuxtLink>
  </div>
</template>

<script setup>
// 确保服务器端返回404状态码
useHead({
  statusCode: 404
});
</script>

<style scoped>
.not-found-container {
  text-align: center;
  padding: 6rem 1rem;
  max-width: 600px;
  margin: 0 auto;
}

h1 {
  font-size: 6rem;
  color: #666;
  margin: 0;
}

h2 {
  font-size: 1.5rem;
  color: #333;
  margin: 0.5rem 0 1rem;
}

.back-home-btn {
  display: inline-block;
  margin-top: 1.5rem;
  padding: 0.75rem 1.5rem;
  background-color: #3b82f6;
  color: white;
  border-radius: 4px;
  text-decoration: none;
}
</style>

这个页面会自动匹配所有未定义的路由,无论是客户端路由跳转还是服务器端直接请求,都会渲染该页面并返回404状态码。

内容的提问来源于stack exchange,提问作者pv1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:35:31