リクエストヘッダーで解析された日付がif-modified-since
の場合、ファイルが変更されていない場合でもnode 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
バージョンとは何かを持っていない?現在、私はv6.9.1
を使用していますUbuntu 16.04 x64 Desktop