【问题标题】:Is there a way to run universal apps on Firebase Hosting?有没有办法在 Firebase 托管上运行通用应用程序?
【发布时间】:2016-10-14 09:07:38
【问题描述】:

我最近成功地将我的 Angular 2 应用程序部署到 Firebase 托管,到目前为止我真的很喜欢这种设置,尤其是使用 CI 进行部署是多么容易。

目前,我正在考虑为我的应用添加通用服务器渲染支持,但我不确定这是否由 Firebase Hosting 处理,因为它说它只是静态文件。

但是,让我认为这可能是我缺少的一个潜在功能是 Firebase 为单页应用程序提供支持,因此我决定询问。

如果不支持此类应用程序,我们可以期待它的未来吗?

【问题讨论】:

  • 我也对此感兴趣,几个月前我搜索了相同的答案。但答案是:不,目前没有。我现在正在为 Universal 寻​​找 Heroku...

标签: javascript angularjs angular firebase firebase-hosting


【解决方案1】:

目前这是不可能的。然而,自从 Angular 2 以来,Google 和 Firebase 齐头并进,我想说这只是时间问题。

与此同时,您可以创建一个基于 Node.js 的服务器,在其中安装 Angular Universal,并使用 Firebase Node SDK 将其连接到 Firebase。

接下来,您只需从 Angular 2 应用程序与该节点后端进行通信。

【讨论】:

  • 我喜欢这种“Angular 2、Google 和 Firebase 齐头并进的方式,我会说这只是时间问题。”
【解决方案2】:

如果您使用的是 angularfire2,那么无论哪种方式都会破坏通用性。包中有一些东西叫做“窗口”,它在服务器上不存在。除非通用或 angularfire 有所改变,否则这是一个方法

【讨论】:

    【解决方案3】:

    在该视频的结尾,David East 提到可以将 Google Cloud Functions 与 Angular Universal 结合使用,例如:https://www.youtube.com/watch?v=R3v8EcYzf_M

    视频本身对 Firebase 用户非常有用。但话题大约在 23:30 开始。

    【讨论】:

      【解决方案4】:

      另一种方法是完全跳过通用并执行this 之类的操作。

      Rendertron 是可以启动的无头 chrome。类似于 phantomjs。但通用提供速度。

      【讨论】:

      • 欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下有用:在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在它,然后引用如果目标页面不可用,您链接到的页面的最相关部分。可能会删除仅是链接的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2010-10-03
      • 2023-03-21
      • 1970-01-01
      • 2022-07-14
      • 2021-08-04
      相关资源
      最近更新 更多