在Ubuntu上使用节点缓慢的静态文件服务
我们使用Testem来提供一堆HTML文件(模板)。 Testem使用Express的“res.sendfile”方法将静态文件发送回客户端。 在Mac机器上,速度非常快 – 根据Chromenetworking跟踪,每个文件需要1-2毫秒。 但是,在Ubuntu机器上,需要39ms。
这是最新的稳定节点 – 0.10.29。 Testem正在使用Express 3.1。
有什么build议可能会导致这种情况,或者我如何进一步诊断?
我通常直接使用下面的静态文件:
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
如果期望的结果是有没有扩展名的干净的url,那么我的build议不会。 但是,如果您不介意在URL中进行文件扩展,那么静态中间件应该会减less请求时间,甚至可能会大大减less。 另外,也许像dust
或jade
这样的模板引擎可能有帮助? 这将允许你使用res.render
fn。
事情是,我看到使用时请求时间增加:
res.sendfile(somepath +'/some.html');
因为expression式在传递文件之前会通过它的正则expression式pathparsing中间件。 如果你有很多的路线,这也可能会减慢请求时间。
希望有所帮助!