しばらくの間SOを使用してきましたが、この特定の問題の解決策が見つからなかったため、ここでの最初の質問です。できるだけ明確にするように努めますが、不明な点がある場合はお知らせください。それに応じて質問を更新します。
ルートを使用して、パラメーター()としてルートに渡されたuserIdに従ってユーザーの写真を提供しています。これは機能しますが、タグが検出されるたびにサーバーに画像を要求し、キャッシュされたバージョンを使用することはありません。
Cache-Controlで少し遊んだのですが、それはすべてかゼロかです。キャッシュが有効になっていて、ユーザーが写真を変更した場合でも、古い写真が使用されます。
私の質問は、写真が変更されていない場合はキャッシュされたバージョンを使用できますが、サーバーからのものを使用した場合は使用できますか?「max-age」または「no-cache」と一緒に「must-revalidate」を使用してみましたが、役に立ちませんでした。
役立つ場合のルートコードは次のとおりです。
Module.exports.getPhoto = function(req, res) {
var mime = require('mime-magic'),
memberId = req.params.memberId,
imgUrl;
path.exists('public/images/memberPhotos/' + memberId, function(exists) {
if(exists) {
imgUrl = 'public/images/memberPhotos/' + memberId;
}else{
imgUrl = 'public/images/memberPhotos/noPhoto.jpg';
}
fs.readFile(imgUrl, function(err, img) {
mime.fileWrapper(imgUrl, function(err, mimeType) {
if(!err) {
console.log(mimeType);
res.writeHead(200, {
'Content-Type': mimeType,
'Cache-Control': "max-age=" + 43800*60 + ", must-revalidate"
});
res.end(img, 'binary');
}
});
});
});
};
ありがとう