Node.js连接不正确的服务图像

我目前正在尝试使用Node.js和连接编写一个非常简单的Web服务器,基本上只是静态地提供一个目录。

var server = connect.createServer(); server.use(connect.logger()); server.use(connect.static(DOCUMENT_ROOT)); server.listen(SERVER_PORT); 

这基本上是工作,我可以连接到服务器和它的服务index.html给我。

当我尝试提供图像(无论是在HTML或直接打开他们的url)时,会发生问题。 他们服务,但似乎并不完全,产生这样的结果:

连接图像结果

我看着头,但找不到任何明显的缺陷。 正确的内容大小是在那里,我唯一觉得很奇怪的是内容types似乎丢失,但似乎浏览器正确地计算出来。 有趣的是,如果我手动提供图像,它的工作。 所以使用这个代码图像是正确的:

 var server = connect.createServer(); server.use(connect.logger()); server.use(function(req, res, next) { console.log(req.url); if (req.url != "/testimage.png") { next(); return; } var data = fs.readFileSync(DOCUMENT_ROOT + req.url); res.writeHead(200, {'Content-Type': 'image/png'}); res.write(data); res.end(); }); server.use(connect.static(DOCUMENT_ROOT)); server.listen(SERVER_PORT); 

任何想法,为什么连接图像不起作用? 由于这是一个相当小的例子,我觉得奇怪它不工作…。 我了解连接有问题吗?

更新

我追查了一下。 这似乎是发送模块的stream媒体组件的一个问题 – 它从来没有停止stream式传输文件,但无休止地重复它。 我认为这可能与我运行Nodelike有关,所以我在Nodelike回购中打开了一个问题。 如果有人有一个想法,我仍然会很高兴

只是为了解决这个问题:毕竟这是Nodelike的问题。 看起来像Nodelike有一个问题或stream导致这个问题。 切换到文件的同步交付解决了这个问题。