如何使用重写将 Firebase Hosting API 端点 URL 代理到另一个后端

问题描述 投票:0回答:1

我决定将我的网站迁移到 firebase 托管。
假设我的网站是

https://example.com/
,这个域既提供前端 html,也提供 API 路由。

迁移后,前端的某些部分被破坏,这是有道理的,因为 API 路由不再工作。所以我想做的是使用 firebase 配置来为我网站的 api 端点提供服务,我尝试使用这个 firebase 配置:

{
    "hosting": {
        "public": "dist",
        "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
        "rewrites": [
            {
                "source": "/api/**",
                "destination": "https://example.com/api/**"
            },
            {
                "source": "**",
                "destination": "/index.html"
            }
        ]
    }
}

但是新部署后就不行了。 Firebase 不断为 api 路由返回

404 Not Found
。如果我直接尝试一条路线,则路线工作正常(例如
https://example.com/api/logs/12
返回正确)。

重写中不能写入其他域吗?我错过了什么?

firebase firebase-hosting
1个回答
0
投票

你想做的事情是不可能的。 Firebase Hosting 无法充当自身与其他网站之间的代理。 我建议查看重写文档。 目的地属性:

必须存在的本地文件

此 URL 可以是相对路径或绝对路径。

您不能提供任意 URL - 它必须是您部署到 Firebase Hosting 的文件。

如果您想将 Firebase 托管放在某些后端服务前面,唯一的选择是将 URL 重写为 Cloud FunctionCloud Run 容器,以执行它并将内容发送给调用者。 如果您无法使用这些服务中的任何一个,则 Firebase 托管可能不适合您的使用案例。

© www.soinside.com 2019 - 2024. All rights reserved.