我决定将我的网站迁移到 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 Hosting 无法充当自身与其他网站之间的代理。 我建议查看重写文档。 目的地属性:
必须存在的本地文件
此 URL 可以是相对路径或绝对路径。
您不能提供任意 URL - 它必须是您部署到 Firebase Hosting 的文件。
如果您想将 Firebase 托管放在某些后端服务前面,唯一的选择是将 URL 重写为 Cloud Function 或 Cloud Run 容器,以执行它并将内容发送给调用者。 如果您无法使用这些服务中的任何一个,则 Firebase 托管可能不适合您的使用案例。