繁体   English   中英

Firebase托管基于域的动态索引.html

[英]Firebase hosting dynamic index.html based on domain

我们的应用程序支持多个域。 有没有办法根据请求中的域提供不同的 index.html 文件?

它看起来不像 firebase 重写支持https://firebase.google.com/docs/hosting/full-config#rewrites

业务需求:是能够根据域提供不同的元标记

当前方法:为每个需要自定义元标记的域设置一个单独的托管存储桶。 这通常可行,但存在规模问题,我们只是在复制资源,因为我们需要将相同的文件上传到每个存储桶。

审核解决方案:拥有 1 个存储桶并通过 firebase 函数动态提供入口点 (index.html)。 缺点:

  • Function 每次部署新版本都需要重新部署
  • 在托管和函数之间创建依赖关系我们需要确保仅在部署文件后才提供新的 index.html。 当您执行firebase deploy时,它实际上会处理订单,但如果有一些边缘情况也不会感到惊讶
  • 使回滚变得更加困难,因为我们需要回滚 function 服务的文件

审查解决方案 2:与上面审查的解决方案类似,但不是将文件存储在函数文件夹中,我们可以通过来自最新版本托管文件夹的网络请求下载它

Firebase 通过重写 Cloud Functions 的路径支持动态渲染。 您可以简单地重写 Cloud Function 的每个路径,它根据请求来自的域生成一个动态 index.html 文件。

这是重写云函数的 Firebase 文档:

"hosting": {
  "rewrites": [ {
    "source": "/bigben",
    "function": "bigben",
    "region": "us-central1"
  } ]
}

配置 Firebase 托管行为

这是另一个有类似问题的问题: Dynamic rendering with Firebase Functions and Firebase Hosting

您可以使用像 EJS 这样的模板引擎来生成动态的 HTML 文件。 您的云 Function 将准备 HTML 文件并在完成后提供它。 EJS - 嵌入式 JavaScript

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM