溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在vue項目中強制清除頁面緩存

發(fā)布時間:2021-03-11 17:21:25 來源:億速云 閱讀:2274 作者:Leah 欄目:web開發(fā)

今天就跟大家聊聊有關怎么在vue項目中強制清除頁面緩存,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

解決方案:

在HTTP協(xié)議中,只有后端返回 expires 或 Cache-Control:max-age=XXX, 前端才緩存。

但在瀏覽器中,默認會對 html css js 等靜態(tài)文件、以及重定向進行緩存,如果在HEAD頭中指定:

<HEAD>
<METAHTTP-EQUIV="Pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache">
<METAHTTP-EQUIV="Expires"CONTENT="0">
</HEAD>

瀏覽器不會緩存html,但是還是會對重定向緩存,并且這種方式并不規(guī)范,可能有的瀏覽器不支持。

我的最終解決方案是:

1) 對hash過的靜態(tài)文件還是采用默認方式,客戶端會緩存。

2)對html文件,返回時增加頭:Cache-Control,必須每次來服務端校驗,根據(jù)etag返回200或者304

對應的nginx配置如下:

upstream example-be {
  ip_hash;
  server unix:/run/example-be.sock;
}
server{
  listen 80; #監(jiān)聽端口
  server_name example.com

  # 后臺api
  location ~ ^/api {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    include uwsgi_params;
    uwsgi_pass example-be;
  }

  # 前端靜態(tài)文件
  location ~* \.(gif|jpg|jpeg|png|css|js|ico|eot|otf|fon|font|ttf|ttc|woff|woff2)$ {
    root /var/www/example-fe/dist/;
  }

  # 前端html文件
  location / {
    # disable cache html
    add_header Cache-Control 'no-cache, must-revalidate, proxy-revalidate, max-age=0';

    root /var/www/example-fe/dist/;
    index index.html index.htm;
    try_files $uri /index.html;
  }
}

由于瀏覽器緩存靜態(tài)文件的時間不可控,我們可以在nginx上自己配置expires 1M(1個月)

# 前端靜態(tài)文件

location ~* \.(gif|jpg|jpeg|png|css|js|ico|eot|otf|fon|font|ttf|ttc|woff|woff2)$ {
   root /var/www/example-fe/dist/;
   expires 1M;
   add_header Cache-Control "public";
 }

看完上述內容,你們對怎么在vue項目中強制清除頁面緩存有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

vue
AI