現在瀏覽器或者系統訪問網頁都會有自己的一套緩存機制,這就可能會導致前端代碼已經更新了,但是用戶還是訪問了之前的緩存。
這里介紹下用nginx處理這個問題的方法,這里配置html和htm文件不緩存
server { listen 80; server_name test.exmaple.cn; location / { if ($request_filename ~* .*\.(?:htm|html)$) ## 配置頁面不緩存html和htm結尾的文件 { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; } root /web/; index index.html; try_files $uri $uri/ /index.html =404; } }
上面我們只配置了不緩存html和htm,js,css等文件沒有做處理,是因為我們前端編譯發布代碼時,如果某個js或css有更新,會自動在文件名上加時間戳、哈希值,這樣一發新版時,只要客戶端請求了新版的html,就會自動找到新的js、css,沒有更新的js、css還會繼續用緩存,這樣既不會太大的影響網頁的訪問速度,也能保證更新的代碼不走緩存。