鍍金池/ 問答/Java  PHP  HTML/ web前端發(fā)布問題

web前端發(fā)布問題

1、起因是公司做了一個(gè)后臺(tái)管理系統(tǒng)(技術(shù)框架是Vue, UI庫(kù)是使用Element ui) 這個(gè)系統(tǒng)已經(jīng)有很多用戶使用了。
2、原先發(fā)布方式就是本地打包放到服務(wù)器上,但那天我想使用自動(dòng)發(fā)布方式(公司開發(fā)的一套發(fā)布系統(tǒng),發(fā)布方式時(shí)覆蓋式發(fā)布,js版本號(hào)每次都會(huì)變),發(fā)完的第二天就出問題了,很多用戶加載不到最新資源,導(dǎo)致左側(cè)點(diǎn)不動(dòng)(原因是我的左側(cè)菜單路由采取懶加載模式,最新資源加載不到瀏覽器報(bào)錯(cuò)了),我只能讓他們刷新,但有的用戶瀏覽器緩存嚴(yán)重,就必須讓ctrl + f5強(qiáng)制刷新才行。
3、想問下其他的一些大公司的前端發(fā)布方式是如何避免系統(tǒng)正在發(fā)布時(shí),用戶他也正巧在使用中,這樣情況的話得必須讓他主動(dòng)刷新這樣問題的,謝謝~~ 。(現(xiàn)在想到的方案可以用CDN保存最近幾次發(fā)布的版本,然后定時(shí)去除最舊資源)

回答
編輯回答
喵小咪
  1. 舊資源不刪也行,不就點(diǎn) JS、CSS,幾乎沒什么消耗
  2. 使用 HTTP header 控制全部資源的緩存,方案你可以找找看,很多介紹的文章。重點(diǎn)在于你要想辦法采用同樣地策略,不要有些過期了有些還在走緩存。
  3. 大體上,如果你的新版本對(duì)用戶有幫助的話,他們會(huì)愿意配合你的刷新策略。更多的時(shí)候,后臺(tái)都要保留各個(gè)版本的接口,不太會(huì)出現(xiàn)不兼容的情況。你可以定時(shí)讀取版本信息,提示用戶刷新。
2018年3月18日 15:37
編輯回答
焚音

這種問題的根源應(yīng)該是系統(tǒng)的html頁(yè)面被緩存了,html頁(yè)面中請(qǐng)求的資源還是發(fā)布之前的資源,導(dǎo)致問題。
可以禁止瀏覽器緩存html頁(yè)面信息。

<meta HTTP-EQUIV="pragma" CONTENT="no-cache"> 
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate"> 
<meta HTTP-EQUIV="expires" CONTENT="0">
2017年5月31日 09:52