我有一個VueJS應用程序。當我運行npm run build
時,它會創建一組新的dist/*
文件,但是,當我將它們加載到服務器上時(在刪除舊版本之後)並在瀏覽器中打開該頁面,它會加載舊版本(來自緩存)。當我刷新頁面時,它加載新代碼沒有問題。VueJS /瀏覽器緩存生成版本
這是我的index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<link rel="stylesheet" href="/static/css/bootstrap.min.css"/>
</head>
<body>
<div id="app"></div>
</body>
</html>
有沒有辦法迫使它每次或(理想)加載新的代碼,以檢查是否舊文件從服務器了,然後刷新瀏覽器嗎?
您是否嘗試過爲每個構建的文件名添加隨機哈希?這將強制瀏覽器「刷新」並加載新版本,但如果請求相同的文件散列,它仍會緩存它。 Angular 2做到了這一點。例如,'build.js'將是'build.32048uueo02348324.js',其中hash表示構建的當前「版本」,並且當創建新構建時,舊文件將被銷燬而不是新文件一個不同的散列。這樣你就不必擔心任何HTTP頭,除非你想要更多的控制。 – Lansana
這可以幫助https://stackoverflow.com/questions/1011605/clear-the-cache-in-javascript – jakob
生成已經這樣做,這裏是我最新的版本的示例:'app.c6831a12f10f0ece2c67.js' – andrei