首页 文章

Firebase托管公用文件夹别名

提问于
浏览
1

我已经表达了基于现有项目的反应,我设法成功地将端口移植到Firebase托管,并且成功地使用 Cloud 功能 . 至少在开发服务器上 . 看起来像这样..这是在http://localhost:5000/上使用命令运行的

firebase serve --only functions,hosting

enter image description here

现在,当我部署它时,它看起来像

enter image description here

这不是一个静态网站 . 关注firebase vid这里https://www.youtube.com/watch?v=LOeioOKUKI8

所以我有运行的快速服务器

app.use('/static',express.static('../public'));

我必须这样做,因为否则,firebase托管将每条路径视为公共路径,它会混淆从公共文件夹中获取的脚本以及反应应用程序中的反应路由器 .

虽然这适用于由firebae运行的本地服务器,但它会在prod上抛出404 .

Failed to load resource: the server responded with a status of 404 ()

关键是我在本地计算机上完成了所有这些工作,但部署并不是必须的 .

部署不顺利 .

firebase deploy

没用 .

firebase --only hosting

工作 .

firebase --only functions

很长一段时间没有工作 .

它一直在扔

Error setting up the execution environment for your function. Please try again after a few minutes.

在它最终奏效之前几次 . 而且我没有做任何改变以使其发挥作用 . 只是自己做了 .

有什么我想念的吗?我是firebase托管的新手 .

我已经在某个地方运行了一个 生产环境 站点,我希望将它移植到firebase . 但是,我不能随意“在几分钟问题后再试一次” .

但首先,为什么我的静态文件在开发时不会在prod上渲染?

谢谢

1 回答

  • 1

    您的 public 目录需要嵌套在 functions 文件夹下,因为只有 functions 文件夹中的文件被部署到 Cloud 功能,并且可以从Node.js获得 .

    本地模拟器没有主动防范这种树导航,这就是它在本地工作的原因 .

    但是,一般情况下,您可能希望稍微重新构建应用程序,以便将静态资产直接部署到Firebase Hosting,而不是由Express提供服务 .

相关问题