0

我將我的Angular2網站部署到Firebase託管,但'dist'文件夾始終將「整個圖像集合」發送到「資產」文件夾中,即使它們沒有更改。這會佔用比所需更多的帶寬,因爲此文件夾大於所有其他文件的組合。有沒有辦法將圖像部署到Firebase託管,但只有存在更改的地方?

如何僅部署更改的圖像? 的策略是:

A)配置火力地堡CLI 「部署」 命令僅處理改變後的圖像

AND/OR

B)配置角生產版本至只打包更改後的圖像(儘管這仍然需要Firebase更新「資產」文件夾,而不是覆蓋所有其他未部署的未更改圖像)

Firebase存儲不是一個很好的選擇,因爲我已經看到......使用API​​調用來訪問頁面加載中的圖像只會減慢加載時間......除非有一個緩存策略涉及到這一點?在這一天結束時,解決方案需要使CDN和CLI一起工作,以最大限度地減少帶寬和負載/部署時間。

回答

2

對不起,目前尚未部分部署Firebase託管靜態內容。

另一種方法可能是在一個項目中託管您的圖片,在另一個項目中託管其他所有內容。如果您的圖片不會經常更改,那麼如果沒有任何更改,您將不必使用圖片部署到項目中。

您也可以使用存儲來存儲您的圖像,然後通過Cloud Functions integration with Firebase Hosting提供服務,它們可以動態查找並將圖像代理到客戶端。然後可以將主機配置爲在CDN上緩存圖像,即as described in the documentation

如果您在實時數據庫中記錄圖像的存儲下載URL,而不是要求存儲生成一個圖像,而是讓客戶端在那裏查看,您可能會看到一些收益。

+0

尼斯@DougStevenson,非常感謝你!希望我可以給你加分的快速反應:) –

+0

我發現[此鏈接](https://firebase.google.com/docs/cli/#partial_deploys)從您的參考文獻中特別有趣。如果我理解正確,使用您描述的方法,我可以使用「--only」命令進一步控制我的部署,而不必離開CLI進行內容更新! –

+0

對,您可以通過firebase deploy --only hosting只發送您的主機內容,而不會發送任何其他內容(儘管整套文件將始終發送)。您可以看到,函數一次可以更好地部分部署更新單個函數。藉助雲存儲,您可以使用gcloud命令行上傳單個文件。 –

相關問題