已經使用了一段時間,但這是我的第一個問題,因爲我找不到解決這個特定問題的方法。我會盡量做到儘可能明確,有什麼不清楚的只是讓我知道,所以我相應地更新了這個問題。節點/快速服務圖像是否存在;緩存問題
我正在使用路由來根據在路由中傳遞的userId作爲參數()來提供用戶的照片。它可以工作,但每次遇到標籤時,都會從服務器請求圖像,並且從不使用緩存版本。
我玩過緩存控制了一下,但沒有全部或沒有:如果啓用了緩存並且用戶更改了他的照片,它仍然會使用舊照片。
我的問題是:如果照片沒有改變,是否有可能使用緩存版本,但是如果它確實使用服務器上的那個版本?我嘗試使用「必須重新驗證」以及「max-age」或「no-cache」無濟於事。
,路線如下代碼,如果有幫助:
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');
}
});
});
});
};
感謝
對不起,延遲 - 謝謝你的回答。 我會盡快測試,但這看起來確實是我要找的。接受答案! –
鏈接斷開,無效。 –