2017-06-27 4 views
1

私はNode.jsの中にファイルを送信していますをスキップする力クライアントを表現するのNode.jsその場合にのみクライアントがキャッシュをスキップするようにします。以下のようなはこのように表現/キャッシュ(リフレッシュ)

何か:

res.header("Content-Type", mime.lookup(file)); 
if (fileHasChanged(file)) 
    res.header("some-header-telling-client-to-skip-cache", "some-value"); 
res.sendFile(file); 

私はそれをどのように行うことができますか?あなたはあなたにSENDFILE()のオプションを'Cache-Control': 'no-cache'を追加する必要があり、同じよう

+0

https://en.wikipedia.org/wiki/HTTP_ETag – SLaks

+0

非常に参考に感謝だそれ!残念ながら、Expressは自動的にETagヘッダーを設定し、鉱山をオーバーライドします。:( – lviggiani

+0

@lviggiani Expressはファイルの内容に基づいてETagを設定します。したがって、ファイルが変更された場合、ETagも変更され、クライアントはリソースをリロードします。 Expressの前のプロキシ?クライアントが 'If-None-Match'リクエストヘッダを送信しているかどうか確認できますか? – robertklep

答えて

0

が見える:

const options = { 
    headers: { 
    'Cache-Control': 'no-cache', 
    } 
}; 

res.sendFile(file, options, (err) => { 
    if (err) { 
    next(err); 
    } else { 
    // Success 
    } 
}); 
関連する問題