我將我的Web應用程序服務器代碼部署到雲平臺。 雖然部署工具獲取所有文件(從本地文件系統或git回購)的過程,但將其上傳到雲並重新啓動應用程序。部署Web應用程序:更新cdn上的資產和對服務器資產的引用
每當我的前端應用程序資產(圖像,CSS,JS)發生變化時,我需要重新部署整個應用程序(並重新啓動它)。沒有構建文件API來僅上傳應用程序的一些文件。
我的前端應用程序的構建過程會準備好所有資產:包含對資產的引用的images,css,js和index.html文件。每個構建資產都有不同的md5名稱(如果已更改)以確保緩存。
前面構建完成後,部署整個應用程序。用戶請求某個地址和服務器用新應用程序的index.html進行響應。
我想要的是避免部署服務器應用程序,當只有前端應用程序發生變化時。
我可以上傳新文件到CDN,但客戶端首先會連接到服務器,它需要知道它應該加載哪些資產(實際上它需要正確的index.html作爲響應)。
問題是關於更新服務器上的Web應用程序前端資源和引用,而不觸及正在運行的服務器應用程序的其他部分。
如何解決這個問題?
我雖然的:
- 服務器具有的index.html模板
- 前應用程序的構建過程中上傳新文件到CDN
- 建造過程更新一些enties indatabase,以反映資產 變化
每次客戶端請求 該應用程序的服務器,它使用模板 和數據庫數據構建正確的index.html。
不使用數據庫的替代選項,每當客戶端請求服務器時,服務器首先使用正確的index.html請求某個CDN(或共享位置),並響應客戶端。
哪種方法更合適,以及該問題的最佳實踐是什麼?
問題是你的index.html鏈接到cdn上的一些「app.js」,但是也許你的js文件的名稱在每個資產構建後發生變化?例如。第一次構建「app_1.js」,第二次構建「app_2.js」等等(可能是一個非常簡單的例子)?我認爲你可以避免在構建之間重命名資產,但是在更新到達時使用CDN的工具來根據需要來緩存緩存。 – ahaurw01
你的意思是什麼CDN的工具? – WHITECOLOR