gpt4 book ai didi

node.js - 在 Ubuntu 上使用 Node 服务的静态文件速度慢

转载 作者:搜寻专家 更新时间:2023-11-01 00:08:12 25 4
gpt4 key购买 nike

我们使用 Testem 来提供一堆 HTML 文件(模板)。在幕后,Testem 使用 Express 的“res.sendfile”方法将静态文件发送回客户端。在 Mac 机器上,这是非常快的——根据 Chrome 网络跟踪,每个文件需要 1-2 毫秒。然而,在 Ubuntu 机器上,它需要 39 毫秒。

这是在最新的稳定 Node - 0.10.29 上。 Testem 使用的是 Express 3.1。

关于可能导致此问题的原因或我如何进一步诊断它有什么建议吗?

最佳答案

我通常使用以下方式直接提供静态文件:

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,那么我的建议将行不通。但是,如果您不介意 url 中的文件扩展名,静态中间件应该会减少请求时间,甚至可能会显着减少。另外,也许是像 dust 这样的模板引擎或 jade有帮助吗?它将允许您使用 res.render

问题是,我发现使用以下方法时请求时间增加了:

res.sendfile(somepath +'/some.html');

因为 express 会在提供文件之前通过其正则表达式路径解析中间件传递它。如果您有大量路线,那也可能会减慢请求时间。

希望对您有所帮助!

关于node.js - 在 Ubuntu 上使用 Node 服务的静态文件速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24213617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com