Nginx學(xué)習(xí)與實(shí)戰(zhàn) · 解決SPA單頁面應(yīng)用CDN緩存問題

現(xiàn)在很多web應(yīng)用都是使用Vue、React等框架開發(fā)的,這種SPA單頁面應(yīng)用在打包后,有些文件比較大。因此,大部分公司在生產(chǎn)環(huán)境會使用CDN加速,來加快首頁渲染速度。
但是使用CDN后靜態(tài)文件會有緩存,重新打包上線后,可能不會立即更新修改的地方。瀏覽器上可以使用Ctrl + Shift + R強(qiáng)制清理緩存,但是手機(jī)上清理緩存就很麻煩。再說這種清理緩存的方式對用戶來說極度不友好,所以需要在Nginx中配置相應(yīng)的緩存策略

Nginx & CDN Cache

配置Nginx

打開 nginx.conf 配置文件,編輯對應(yīng)的server,加上下面的控制緩存策略代碼:

server {
    listen       8088;
    server_name  localhost;
    
    location / {
        root   /data/www/web-test;
        index  index.html;
        try_files $uri $uri/ /index.html;
        
        # 控制緩存策略代碼 start 
        # code-1
        if ($request_filename ~ .*\.(htm|html)$) {
            add_header Cache-Control 'no-store, no-cache, must-revalidate';
        }
        
        # code-2
        if ($request_filename ~ .*.(js|css)$) {
            expires 30d;
        }
        # 控制緩存策略代碼 end
        
    }
}
  • code-1: 這段代碼的含義是不緩存html入口頁,每次都重新從服務(wù)端拉取最新的文件。
  • code-2: 這個(gè)是匹配找到所有的js、css文件,讓其加上 30天 的緩存。

配置成功后,執(zhí)行 nginx -s reload 重啟nginx,應(yīng)該就大功告成了。


《Nginx學(xué)習(xí)與實(shí)戰(zhàn)》系列


歡迎訪問:天問博客

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容