我们使用Testem来提供一堆HTML文件(模板)。在幕后,Testem使用Express的"res.sendfile“方法将静态文件发送回客户端。在Mac机器上,这是非常快的-根据Chrome网络跟踪,每个文件1-2毫秒。然而,在Ubuntu机器上,这需要39ms。
这是最新的稳定节点- 0.10.29。Testem使用的是Express 3.1。
有什么建议可能会导致这种情况,或者我如何进一步诊断它?
发布于 2014-06-14 05:18:58
我通常使用以下命令直接提供静态文件:
app.use( express.static(__dirname+'/public') );中间件。您的静态文件将存储在
/<app-path>/public这将允许您在以下位置访问/<app-path>/public/some.html:
http://yoursite.com/some.html如果您将file.html放在/<app-path>/public/html/中,则可以解决以下问题:
http://yoursite.com/html/file.html
http://yoursite.com/public/html/file.html如果期望的结果是拥有干净的没有扩展名的urls,那么我的建议是行不通的。但是,如果您不介意urls中的文件扩展名,静态中间件应该可以减少请求时间,甚至可以显著减少请求时间。此外,也许像dust或jade这样的模板引擎可能会有所帮助?它将允许您使用res.render fn。
问题是,我发现在使用以下命令时请求次数会增加:
res.sendfile(somepath +'/some.html');因为express将在提供文件之前通过其正则表达式路径解析中间件传递该文件。如果你有大量的路由,这也可能会减慢请求时间。
希望这能有所帮助!
https://stackoverflow.com/questions/24213617
复制相似问题