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

如何将仅collection路由启用SSR的Nuxt 3非SSR应用部署到Firebase

Nuxt 混合SSR/静态模式部署到Firebase的正确配置

针对你遇到的混合SSR/静态路由部署Firebase时的404问题,按以下步骤修正:

1. 调整firebase.json配置

混合模式下,SSR路由需要通过Firebase Functions处理,静态路由直接托管,必须配置路由转发规则。替换你的firebase.json为以下内容:

{
  "hosting": {
    "public": ".output/public",
    "cleanUrls": true,
    "rewrites": [
      // 让collection/**路由走SSR函数
      {
        "source": "/collection/**",
        "function": "server"
      },
      // 其余非SSR路由走SPA模式的index.html
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },
  "functions": {
    "source": ".output/server",
    "runtime": "nodejs18" // 请匹配你的项目Node版本,建议18+
  }
}

2. 确认构建输出结构

执行NITRO_PRESET=firebase npm run build后,检查.output目录:

  • .output/public:包含静态生成的资源、非SSR路由的HTML文件
  • .output/server:包含SSR对应的Firebase函数代码
    确保Firebase Functions的source路径正确指向.output/server,否则函数无法正常部署。

3. 完整部署流程

不要单独部署Hosting,必须同时部署Functions和Hosting:

  1. 执行构建:NITRO_PRESET=firebase npm run build
  2. 部署到Firebase:firebase deploy

4. 配置自定义404页面

在Nuxt项目中创建pages/404.vue,构建时会自动生成404.html到.output/public,避免Firebase返回默认的404错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:05:41