如何通过 Node ExpressJS 从 Firebase 托管提供静态网站?

jhn*_*ris 5 node.js express firebase firebase-hosting

重用问题如何通过 Node ExpressJS 从 s3 提供静态网站?但在 Firebase 上下文中使用。

目前我使用 app.use(express.static('public')) 和位于我的 Node js Express 应用程序的公共文件夹中的文件及其工作良好。但是,我想将这些文件(index.html 等)存储在我们的 Firebase 托管中(以便多个应用程序可以使用该网站)。我试过

app.get('/', function(req, res) {
    res.sendfile('*-firebaseapp.com/index.html'); 
 });
Run Code Online (Sandbox Code Playgroud)

是否有任何特定方法可以将 Firebase 中托管的静态网站呈现给 Express 应用程序?

谢谢您的帮助!

Fra*_*len -1

res.sendFile()方法将其path参数定义为:

path必须是文件的绝对路径。

您的 Express 函数在 Cloud Functions 中运行,这是 Google 基础设施上的无服务器容器。Firebase 托管在不同的基础设施中运行,大部分服务发生在边缘缓存上。

Cloud Functions 代码无权访问托管基础设施的文件系统。

因此,如果您想从 Firebase 托管提供文件,则必须通过 HTTP(S) 请求它们,这与任何客户端必须执行的操作类似。或者,您可以考虑将 HTML 文件部署到 Cloud Functions 容器中,方法是将它们放入index.js/index.ts文件所在的文件夹中。