无法使用 firebase 从 node.js 部署中引用 public 文件夹

Can't reference public folder from node.js deployment with firebase

看完 Node.js apps on Firebase Hosting 之后,我尝试使用 Polymer 和 NodeJs/express 以及 firebase 托管创建一个项目。
在链接的视频中显示 firebase 默认情况下会提供静态服务public/index.html 文件,这就是他们删除它然后提供动态文件的原因。然而,这个特定的文件在同一个函数目录中,不再放在 public 文件夹中。

这是否意味着我的整个项目应该放在函数文件夹中,或者只是应用入口点?我无法发送放置在我的 public 文件夹中的文件,如下所示。


app.get('*', (req, res) => {
   res.sendFile(path.join(__dirname, '/public/index.html'));
})

我认为 firebase 以不同方式托管 public 和函数文件夹,还是我引用的是错误的?

您需要将 public 文件夹 嵌套在 functions 文件夹 中,以便能够在您的函数中引用其中的文件。您只需将 firebase.json 中的 public 设置更改为例如functions/public 然后将目录移动到 functions.

然后您就可以像您描述的那样进行操作了。

我认为无需将整个 public 文件夹移动到函数文件夹中。您可以像这样使用相对路径

app.get('*', (req, res) => {
     res.sendFile( './../public/index.html'));
})

它对我有用...试试这个。