0
通常を要求し、私はこのようなHTTP2リクエストを経由してファイルを提供します:更新キャッシュは
if (req.url === '/main.html') {
let files = {
'main.css': {
type: 'text/css'
},
'main.js': {
type: 'application/javascript'
}
};
for (let name in files) {
let push = res.push('/' + name, {
response: {
'Content-Type': files[name].type,
'Cache-Control': 'public, max-age=31556926'
}
});
push.on('error', er => console.log(er));
push.end(fs.readFileSync('/home/src/' + name));
}
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.end(`
<html>
<head>
<link rel="stylesheet" href="/main.css">
<script src="/main.js"></script>
</head>
<body></body>
</html>
`);
}
私は彼らの新しいコンテンツが用意されていたときに、これらの2つのファイルmain.css
とmain.js
を更新して問題を得ました。 別の/main.html
リクエストを送信するだけで更新されますか?そうでない場合は、どうすれば更新できますか?
ご回答いただきありがとうございます。また、古いキャッシュを削除するために 'max-age'を使って非常に短い寿命を設定することも考えています。この方法を試したことがありますか?それはすべてのブラウザで機能しますか? – Lewis
こんにちは!はい、この方法はInternet Explorer、Chrome、Firefoxでうまく動作します。 SafariはHTTP/2プッシュをサポートしていないので、そこには必要ありません。 – dsign