持久化快取(伺服器到底要怎麼設定快取)

2021-10-09 18:05:45 字數 1050 閱讀 1048

這個問題最初是8月初qq**現場面試的時候有問到過,當我打算流暢的從瀏覽器快取策略到快取位置大談特談的時候,面試官打斷了我,直接問:

伺服器怎麼設定各種資源的快取,快取多久?

那如果專案已經上線還在強快取範圍內的時候頁面出現bug,該怎麼替換這個頁面?

q: 伺服器怎麼設定各種資源的快取,快取多久?

首先是靜態資源快取的問題:

// 設定快取時間為1年

cache-control: max-age=

31536000

然後是html檔案:

q:有時候到線上需要修改,還在快取策略內,怎麼強制重新整理?

第一種方法:借助serviceworker

第二個辦法:更改引用資源的路徑

通過更新頁面中引用的資源路徑,讓瀏覽器主動放棄快取,載入新資源,具體就是資源加上發布版本,比如:

q: 應該如何在 webpack 中進行持久化快取的呢

所以我們在乙份具有持久化快取的 webpack 配置應該長這樣:

module.exports =

}

q:是先部署頁面,還是先部署資源?

如果先部署頁面,再部署資源:

在二者部署的時間間隔內,如果有使用者訪問頁面,就會在新的頁面結構中載入舊的資源,並且把這個舊版本資源當做新版本快取起來,其結果就是:使用者訪問到乙個樣式錯亂的頁面,除非手動去重新整理,否則在資源快取過期之前,頁面會一直處於錯亂的狀態。

如果先部署資源,再部署頁面:

在部署時間間隔內,有舊版本的資源本地快取的使用者訪問**,由於請求的頁面是舊版本,資源引用沒有改變,瀏覽器將直接使用本地快取,這樣屬於正常情況,但沒有本地快取或者快取過期的使用者在訪問**的時候,就會出現舊版本頁面載入新版本資源的情況,導致頁面執行錯誤。

最終結論:

最後簡單總結一下:

串列埠伺服器引數應該怎麼設定

串列埠伺服器現在在工業領域的應用非常的廣泛,在某些工業現場的應用環境中需要對其引數進行設定,下面介紹串列埠伺服器引數設定的幾種方法。一般串列埠服務的引數設定有網頁和at指令兩種方法。第一,網頁設定方法。通過網頁來設定的方法是最常用的一種方法,在家庭路由器設定上也是用的網頁,所以大多數人都不會陌生。開...

ECS Ubuntu 伺服器安全初始化設定

修改root密碼 passwd 修改當前使用者密碼新增管理使用者 非root 並賦予許可權 新增zac使用者 adduser zac 賦值root使用者許可權 退出儲存的過程可能提示檔案readonly,這時我們如果是root使用者可以 wq!進行強制儲存退出。修改ssh預設配置 備份配置檔案 cp...

講解Nginx伺服器中設定本地瀏覽器快取的簡單方法

瀏覽器快取 browser caching 是為了加速瀏覽並節約網路資源,瀏覽器在使用者磁碟上對最近請求過的文件進行儲存。nginx可以通過 expires 指令來設定瀏覽器的header 語法 expires time epoch max off程式設計客棧 預設值 expires off 作用域...