2016-12-18 1 views
1

expressjsで静的でないファイル応答のmax-ageパラメータを設定する方法。非静的ファイルの応答のmax-ageを設定する方法

マイコード:このまた

res.set({'max-age':5}); 

res.set({'Cache-Control':'max-age=5'}); 

それはres.SendFile(file,{maxAge: 5}) で正常に動作している。しかし、静的ファイルに問題がある

app.get('/hello', function(req, res) { 
    res.set('Content-Type', 'text/plain'); 
    res.set({'maxAge':5}); 
    res.send("Hello Message from port: " + port); 
    res.status(200).end() 
}) 

私はこれを試してみました私はヘッダーに最初のhttpレスポンスafのみで 'max-age'が反映されているのを見ますサーバが起動します。

後続のすべての応答ヘッダは、ファイルが新鮮提供されていても「最大-年齢= 0」が表示(ステータス200)

+1

、それはnginxのでヘッダーを設定する方が良いでしょう。 – num8er

答えて

2

あなたはとのヘッダーを設定することはできません。

res.set({'maxAge':5}); 

か:

res.set({'max-age':5}); 

代わりCache-Controlヘッダを設定することが有効されていない、それぞれ、maxAge又はmax-ageヘッダーを設定することになるため、HTTPヘッダー。

あなたがして、それを設定することができます。

res.set('Cache-Control', 'max-age=5'); 

か:

res.set({'Cache-Control': 'max-age=5'}); 

参照:

app.get('/hello', function(req, res) { 
    res.set('Content-Type', 'text/plain'); 
    res.set('Cache-Control', 'max-age=5'); 
    res.send("Hello Message from port: " + port); 
    res.status(200).end() 
}); 

あなたはヘッダを見て、カール使用することができます。

curl -v http://localhost:3333/hello 

それは多分、いくつかのミドルウェアは、あなたのヘッダーをめちゃくちゃにされた、または多分あなたがそれらを変更するプロキシサーバーを持っているすべての応答であなたのCache-Controlヘッダーが含まれていない場合は

(だけではなく、3333のあなたのポートを使用します)。

max-ageを5秒間使用しているため、キャッシュが非常に短いため、注意してください。

を参照してください:あなたはnginxのプロキシを使用して通過要求している場合

+0

キャッシュを非常に短くすることを意図しています。しかし、私は問題を理解しました。あなたが言ったように、それは台無しになっているプロキシサーバーです。私はHAProxyを使用して2台の高速サーバーの負荷分散を行っています。再度、感謝します。 – user3151330

関連する問題