0

静的ファイルをブラウザに短時間(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}));
4

1 に答える 1

0

自己証明書の問題がありました。それが問題を引き起こしていたようです。証明書がインストールされていなくても、ヘッダーが変化しないと、すべてが正常に機能しているように見えます。それにもかかわらず、vary ヘッダーの問題を使用すると、キャッシュに表示されました。

自己証明書をインストールすると機能しました。

解決策は次のとおりです:ブラウザが "If-None-Match" ヘッダーを送信しないのはなぜですか?

于 2016-04-14T07:08:07.830 に答える