重用How can I serve static web site from s3 through node expressjs?中的问题,但在Firebase的上下文中使用。
当前,我使用app.use(express.static('public')),并且我的节点js express应用程序的公用文件夹中的文件及其工作正常。但是,我想将这些文件(index.html等)存储在我们的Firebase托管中(以便多个应用程序可以使用此网站)。我尝试过
app.get('/', function(req, res) {
res.sendfile('*-firebaseapp.com/index.html');
});
在Firebase中托管的静态网站是否有任何特定方法可以呈现给Express App?
感谢您的帮助!
答案 0 :(得分:0)
res.sendFile()
method将其path
参数定义为:
path
必须是文件的绝对路径。
您的Express功能正在Cloud Functions中运行,Cloud Functions是Google基础架构上的无服务器容器。 Firebase托管在不同的基础架构中运行,其中许多服务都发生在边缘缓存中。
Cloud Functions代码无权访问托管基础架构的文件系统。
因此,如果您想从Firebase Hosting提供文件,则必须通过HTTP(S)请求它们,这与任何客户端必须执行的操作类似。另外,您也可以考虑将HTML文件部署到Cloud Functions容器中,方法是将它们放置在index.js
/ index.ts
文件所在的文件夹中。