静的ファイルをブラウザに短時間(10 秒)キャッシュするようにしようとしています。ページを更新すると正常に動作しているようです。- 新規の場合は 200 - 最初の 10 秒間にソフト リフレッシュした場合はキャッシュから 200 - 10 秒以上経過した場合は 304。
Http ヘッダー 'Vary': 'Accept-Encoding' を追加するたびに、機能が停止します。つまり、ブラウザーのキャッシュが機能しなくなります (常にサーバーにヒットします)。これは、Http ヘッダー 'Vary' を追加するたびに、 Http 要求が if-modified-since または if-none-match の送信を停止するために発生します。
キャッシュ制御と可変互換性は連携していますか?
誰かが解決策を提案できる場合に備えて、HTTP リクエストとレスポンスを残します。
Request Header
accept:*/*
accept-encoding:gzip, deflate, sdch
accept-language:en-US,en;q=0.8
cache-control:max-age=0
cookie:XXXXX
referer:XXXXXXXXX
user-agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36
Response Header
cache-control:max-age=10
content-encoding:gzip
content-type:application/javascript
date:Wed, 13 Apr 2016 12:34:57 GMT
etag:W/"XXXXXXXXXXXXXX"
last-modified:Wed, 13 Apr 2016 12:34:25 GMT
server:nginx/1.9.14
status:200
vary:Accept-Encoding
x-powered-by:Express
Expressでは、静的ファイルの応答ヘッダーを設定するための次の構成があります。
var setHeaders = function(res, path)
{
res.setHeader('Cache-Control', 'max-age=10');
res.vary('Accept-Encoding');
};
app.use('/static', express.static('./app/static', {setHeaders: setHeaders}));