一尘不染

“服务静态文件”到底是什么意思?

node.js

到目前为止,我一直在使用Webstorm的内置网络服务器来为我的内容提供服务,而我的客户端应用程序一直在不运行任何客户端的情况下进行开发。

当人们使用带有Express的Node充当其Web服务器时,我经常看到的是关于是否应将HTML文件与node或与客户端代码一起放置的争论。

我了解html或css中包含的javascript文件最好存储在客户端目录中?

所以我的第一个问题是,使用这样的文件夹结构

app/
  client/ js files
  server/ node files

您应该在服务器或客户端目录中包含html页面吗?

其次:

有时我看到人们使用express.static静态文件,这里的静态文件到底暗示了什么?如今,大多数网站不再是静态文档,而是通过操纵DOM被javascript更改的文件,所以我认为任何html文件都不应被视为静态文件?

据我所知,使用Node而不是内置Web服务器的唯一优势是我想拥有数据库访问权限。


阅读 434

收藏
2020-07-07

共1个答案

一尘不染

如今,大多数网站不再是静态文档,而是通过操纵DOM被javascript更改的文件,所以我认为任何html文件都不应被视为静态文件?

页面本身的文件仍然是静态的。也就是说,您不是在使用服务器端代码动态创建它们。在这种情况下,浏览器中发生的事情无关紧要……想法是您无需动态生成这些文件,因为它们的内容不会更改。

我了解html或css中包含的javascript文件最好存储在客户端目录中?

文件在服务器上的存储位置无关紧要。重要的是您通常不希望从Node.js应用程序中提供静态文件。诸如此类express.static的工具仅是为了方便。有时,您的应用程序流量可能较低。在这些情况下,完全可以通过Node.js应用程序提供文件。对于任何具有适当流量负载的事物,最好将静态服务提供给诸如Nginx之类的真实Web服务器,因为这些服务器比Node.js应用程序效率更高。

您应该将应用程序代码(提供动态响应的代码,例如API服务器)保留在Node.js应用程序中。

将您的Node.js应用程序放在像Nginx这样的代理后面是一个好主意,以便该代理可以处理所有客户端交互(例如,用勺子喂慢速客户端),让您的Node.js应用程序执行其最佳工作。同样,在交通拥挤的情况下也没关系。

2020-07-07