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

Nuxt3部署Vercel后现有页面直接访问出现404问题求助

问题排查方案:Nuxt3 + Vercel 直接访问路由返回404

核心问题定位

路由内跳转正常但直接访问/爬虫访问返回404,本质是Vercel服务器上没有对应路由的可访问资源——要么是静态预渲染没生成对应HTML文件,要么是SSR模式下路由配置未生效。

具体排查步骤

1. 清理冲突的配置项

你的nuxt.config.ts里同时存在多套路由生成配置,且有矛盾设置:

  • 移除generate配置块:Nuxt3已弃用generate,统一用nitro.prerender替代
  • 删除nitro.static: true:该配置会强制生成纯静态SPA站点,和你设置的ssr: true(服务端渲染/预渲染)冲突,直接导致预渲染逻辑异常
  • 保留nitro.prerender和routeRules的正确配置,修改后相关配置块如下:
routeRules: {
  "/**": { prerender: true },
},
ssr: true,

nitro: {
  prerender: {
    routes: [
      "/",
      "/about",
      "/blog"
    ],
    crawlLinks: true,
    concurrency: 12,
  },
},

2. 本地验证预渲染结果

执行npx nuxi generate命令,查看项目根目录下的.output/public文件夹:

  • 如果存在about/index.html文件,说明预渲染成功,问题出在Vercel部署环节
  • 如果没有该文件,说明预渲染过程失败,需检查/about页面组件:
    • 排查页面内useFetch/useAsyncData等异步逻辑,确保预渲染时能正常获取数据(可查看nuxi generate控制台的错误提示)
    • 检查组件是否存在语法错误或运行时错误,导致预渲染中断

3. 确认Vercel部署配置

  • 构建命令必须为npx nuxi generate(SSG模式)或npx nuxi build(SSR模式),避免使用未正确配置的旧脚本如npm run generate
  • SSR模式下,Vercel会自动识别Nuxt3项目,无需额外配置;SSG模式下,只要预渲染生成了对应HTML文件,部署后Vercel会自动托管静态资源,不会返回404

4. 检查页面路由配置

确保/pages目录下存在about.vue文件,或通过app/router.options.ts自定义的路由规则正确映射了/about路径,避免路由定义错误导致的资源缺失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:12:13