我不知道爲什麼從請求標頭if-modified-since
解析的日期總是不同於從節點stat函數中的mtime
解析的pate,即使文件未被修改。Node.js:if-modified-since日期總是不同於mtime stat文件
的代碼我有修改的條件是這樣的:
fs.stat(file.dir, function(err, stats){
if(err){
$.status("500");
$.end();
console.error(err);
}
else{
/*
* Check if file was modified, send 304 if not
*/
if(!$.header("if-modified-since")){
$.header("Last-Modified", new Date(stats.mtime).toUTCString());
sendFile(file, $);
}
else{
var lastModified = new Date($.header("if-modified-since"));
var modified = new Date(stats.mtime);
console.log($.url.pathname, lastModified.getTime(), modified.getTime());
if(modified.getTime() == lastModified.getTime()){
$.status("304");
$.end();
}
else{
$.header("Last-Modified", new Date(stats.mtime).toUTCString());
sendFile(file, $);
}
}
}
});
日誌中的代碼有這樣的結果:
// On non-modified file request
/style.css 1478834712000 1478834712057
// On modified file request
/style.css 1478834712000 1478834851656
// On non-modified file request after modified file request
/style.css 1478834851000 1478834851656
,這都什麼跟node.js
版本?目前我對Ubuntu 16.04 x64 Desktop