色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

前端資源通過加蓋md5戳實(shí)現(xiàn)非覆蓋發(fā)布的問題

林國瑞2年前17瀏覽0評論

前端資源通過加蓋md5戳實(shí)現(xiàn)非覆蓋發(fā)布的問題?

對于前端工程領(lǐng)域,不要以為前端資源的發(fā)布很簡單,考慮到歷史版本的兼容,我們發(fā)布靜態(tài)資源文件時(shí)不能直接簡單的覆蓋。

文件發(fā)布方式

對于文件發(fā)布方式,主要可分為兩大類:

1、覆蓋式發(fā)布

我們部署動(dòng)態(tài)頁面或靜態(tài)資源時(shí)若采用覆蓋式發(fā)布,會導(dǎo)致歷史版本無法兼容、頁面混亂的現(xiàn)象,需要盡可能避免。

2、非覆蓋式發(fā)布

本次上線涉及的文件不會影響舊版本文件,可確保老版本的兼容,但是經(jīng)過多輪迭代后,廢棄版本文件較多。

但對于大型項(xiàng)目而言,一般都是采用非覆蓋式發(fā)布。

基于MD5摘要實(shí)現(xiàn)非覆蓋發(fā)布

現(xiàn)在中大型網(wǎng)站都會使用CDN來緩存前端資源文件,一旦靜態(tài)資源使用了強(qiáng)制緩存且緩存時(shí)間很長,那靜態(tài)文件的更新就依懶文件名的變化來實(shí)現(xiàn),此時(shí)可使用基于文件內(nèi)容的MD5戳來命名文件以實(shí)現(xiàn)資源更新。

但是這樣也會存在問題,比如說:一個(gè)頁面引用了多個(gè)CSS文件,而每個(gè)CSS文件里又引用了多個(gè)圖片資源,若某個(gè)圖片資源發(fā)生了變化,我們就必須同步更新:

圖片的文件名

CSS的文件名

還要更新頁面中引用的CSS文件名

這樣一來,維護(hù)起來很麻煩,當(dāng)一個(gè)鏈(如:html > css > jpg)的末端資源列新時(shí),那這么鏈路上的所有資源都要同步加蓋MD5戳。建議基于版本實(shí)現(xiàn)非覆蓋發(fā)布

考慮到加蓋MD5戳的方式實(shí)現(xiàn)非覆蓋更新時(shí),鏈路其它資源需要同步更新帶來的維護(hù)成本。我們建議基于文件版本來實(shí)現(xiàn)非覆蓋發(fā)布,每個(gè)版本迭代時(shí),前端文件集中在一起放在某個(gè)版本文件夾中直接引用即可。

以上就是我的觀點(diǎn),對于這個(gè)問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識!

css 文件帶時(shí)間戳,前端資源通過加蓋md5戳實(shí)現(xiàn)非覆蓋發(fā)布的問題