首页 > 解决方案 > Firebase 托管重写未在 Google Cloud Run 上显示 SSR 内容

问题描述

为了服务器端渲染我的项目,我使用 Node.js 设置了一个 docker 容器。该容器在 Google 的 Container Registry 中注册并连接到 Cloud Run 的服务。当我使用提供的服务 URL 时,站点是 SSR,一切看起来都很好。

为了将项目与 firebase 连接,我编写了这个重定向:

"hosting": {
"public": "dist/browser",
"ignore": [
  "firebase.json",
  "**/.*",
  "**/node_modules/**"
],
"rewrites": [
  {
    "source": "**",
    "run": {
      "serviceId": "nest-server-ssr",
      "region": "europe-west1"
    }
  }
]
},

不幸的是,当我现在查看代码时,它不再呈现在服务器端。

有人遇到过类似的问题吗?

编辑:

正如迈克尔提到的,问题是第二个 index.html 文件。你可以看到这是送达的。(我添加了一个测试评论以确保)

在此处输入图像描述

所以解决方案只是从公共目录中删除您的 index.html 文件。感谢迈克尔的帮助!

标签: firebaseserver-side-renderingfirebase-hostingangular-universalgoogle-cloud-run

解决方案


(猜测发生了什么)

如果您index.htmldist/browser文件夹中有一个并访问站点的根路径 ( /),则将提供静态 HTML,而不是调用 Cloud Run 服务。

正如您在文档中看到的那样,“完全匹配”静态内容的优先级高于重写。

要解决这个问题,您只需index.html从公共目录中删除您的文件。


推荐阅读