【问题标题】:Firebase Functions - generate and host static webpageFirebase Functions - 生成和托管静态网页
【发布时间】:2019-09-02 05:49:01
【问题描述】:

我正在使用 Firebase Cloud Functions 生成一个 HTML 文件,现在我想将它与相关资产(js、css、字体等)一起托管,但没有成功。

我调用该函数,它会正确生成文件并将其与 js/css/其他资产一起放入 Firebase 存储中。现在我想返回 index.html 文件的 URL,以便用户可以在浏览器中访问它,并且 .html 页面将可以访问资产。不幸的是,生成的 URL 会强制下载,但我很确定即使我以某种方式管理它,它也无法访问资产文件。

我知道这可以在 AWS(S3 存储桶)上实现,但我可以在 Firebase 上实现吗?在这种情况下,Firebase 托管似乎不是正确的解决方案,是吗?

【问题讨论】:

  • 您可以在firebase.json 中配置重写并使用expressjs 中间件处理请求...无需将HTML 保存在任何地方,只需将其发送到请求的浏览器即可它。
  • 您是说要直接从 Cloud Storage 存储分区提供静态 Web 内容吗?
  • @MartinZeitler 问题是我有一个完整的捆绑包,意思是带有本地资产(css、js、字体等)的 HTML。为每个文件创建一个 express 端点是相当困难的。
  • @DougStevenson 这将是理想的,但据我所知,与 S3 不同,文件无法访问同一存储桶中的其他文件

标签: firebase google-cloud-functions firebase-storage firebase-hosting


【解决方案1】:

不要将它保存到存储中,这对于这种情况来说是一个糟糕的用例。相反,将其保存到 Hosting:

https://firebase.google.com/docs/hosting/

另外,您可以考虑直接从云端功能提供内容,可能不需要先创建静态版本。

【讨论】:

  • 如果它是一个永远不会改变的内容,那么通过托管它的静态版本,您可以节省 Firestore 查询的费用。它将阻止用户对数据库进行大量查询。
  • 如果内容只是定期更改,您也可以启用缓存:firebase.google.com/docs/hosting/manage-cache
  • 另请参阅:“当进程以编程方式生成静态内容时(例如,用户生成的内容,如 wiki 或新闻文章),您可以将生成的内容部署为静态文件,而不是提供它们“ firebase.google.com/docs/hosting/api-deploy
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2018-10-13
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 2017-11-03
相关资源
最近更新 更多