首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu上使用Node提供缓慢的静态文件服务

在Ubuntu上使用Node提供缓慢的静态文件服务
EN

Stack Overflow用户
提问于 2014-06-14 04:48:27
回答 1查看 1.1K关注 0票数 3

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

这是最新的稳定节点- 0.10.29。Testem使用的是Express 3.1。

有什么建议可能会导致这种情况,或者我如何进一步诊断它?

EN

回答 1

Stack Overflow用户

发布于 2014-06-14 05:18:58

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

代码语言:javascript
复制
app.use( express.static(__dirname+'/public') );

中间件。您的静态文件将存储在

代码语言:javascript
复制
/<app-path>/public

这将允许您在以下位置访问/<app-path>/public/some.html

代码语言:javascript
复制
http://yoursite.com/some.html

如果您将file.html放在/<app-path>/public/html/中,则可以解决以下问题:

代码语言:javascript
复制
http://yoursite.com/html/file.html

http://yoursite.com/public/html/file.html

如果期望的结果是拥有干净的没有扩展名的urls,那么我的建议是行不通的。但是,如果您不介意urls中的文件扩展名,静态中间件应该可以减少请求时间,甚至可以显著减少请求时间。此外,也许像dustjade这样的模板引擎可能会有所帮助?它将允许您使用res.render fn。

问题是,我发现在使用以下命令时请求次数会增加:

代码语言:javascript
复制
res.sendfile(somepath +'/some.html');

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

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24213617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档