有没有办法将图像部署到 Firebase 托管,但仅限于存在更改的地方?

Sen*_*ies 1 firebase firebase-hosting angular-cli firebase-storage angular

我将我的 Angular2 站点部署到 Firebase 托管,但“dist”文件夹总是在“assets”文件夹中发送整个图像集合,即使它们没有改变。这会占用不必要的带宽,因为此文件夹比所有其他文件的总和还要大。

如何仅部署更改的图像?策略是:

A)配置 Firebase CLI“部署”命令以仅处理更改的图像

和/或

B)将 Angular 生产版本配置为仅打包更改的图像(尽管这仍然需要 Firebase 更新“资产”文件夹,而不是覆盖所有其他未更改的部署图像)

正如我所见,Firebase Storage 不是一个好的替代方案……在页面加载时调用 API 来访问图像只会减慢加载时间……除非这涉及缓存策略?归根结底,该解决方案需要让 CDN 和 CLI 协同工作,以最大限度地减少带宽和加载/部署时间。

Dou*_*son 5

抱歉,目前没有针对 Firebase 托管静态内容的部分部署。

另一种方法可能是将您的图像托管在一个项目中,并将其他所有内容托管在另一个项目中。如果您的图像不经常更改,那么如果没有任何更改,您就不必将图像部署到项目中。

您还可以使用 Storage 来存储您的图像,然后通过Cloud Functions 与 Firebase Hosting 的集成为它们提供服务,Firebase Hosting可以动态查找并将图像代理到客户端。然后可以将托管配置为在 CDN 中缓存图像,如文档中所述

如果您改为在实时数据库中记录图像的存储下载 URL,而不是要求存储生成一个,并让客户端查看那里,您可能还会看到一些好处。