我已经表达了基于现有项目的反应,我成功地将云功能移植到Firebase托管...至少在开发服务器上。 看起来像这样.. 这是使用命令
在http://localhost:5000/上运行的firebase serve --only functions,hosting
现在,当我部署它时,它看起来像
这不是静态网站。继firebase vid之后 https://www.youtube.com/watch?v=LOeioOKUKI8
所以我使用
运行Express服务器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上呈现?
由于
答案 0 :(得分:1)
Your public
directory will need to be nested beneath your functions
folder, as only files within the functions
folder are deployed to Cloud Functions and available from Node.js.
The local emulator is not actively guarding against this kind of tree navigation, which is why it works locally.
In general, though, you'll likely want to restructure your app a bit so that your static assets are deployed to Firebase Hosting directly rather than being served by Express.