当人们使用Node Express作为他们的网络服务器时,我经常看到的是关于如果你应该把html文件放在节点或客户端代码上的争论.
我理解包含在html或css中的javascript文件最好存储在客户端目录中?
所以我的第一个问题是这样的文件夹结构
app/ client/ js files server/ node files
您的html页面是否应包含在您的服务器或客户端目录中?
其次:
有时候,我看到人们使用express.static为静态文件,这里静态文件究竟是什么意思?今天大多数网站不是静态文件,而是通过操纵DOM来改变javascript的文件,所以我不认为任何html文件应该被视为静态文件?
据我所见,我使用Node而不是内置的Web服务器的唯一优点是如果我想要访问数据库.
解决方法
Today most websites are not static documents anymore but are files that get altered by javascript by manipulating the DOM,so I don’t think any html files should be considered as static files?
您的网页本身的文件仍然是静态的.也就是说,您不是使用服务器端代码动态创建它们.浏览器中发生的情况在这种情况下并不重要,这个想法是您不需要随时生成这些文件,因为它们的内容不会改变.
I understand javascript files that are included in html or css are best stored in the client directory?
将文件存储在服务器上的位置并不重要.最重要的是您通常不想从Node.js应用程序提供静态文件.像express.static这样的工具只是为了方便.有时,您的流量应用程序可能很低.在这些情况下,使用Node.js应用程序提供文件是完全可以接受的.对于任何具有良好流量负载的任何东西,最好将静态服务放置在真正的网络服务器(如Nginx)上,因为这些服务器的效率远远高于Node.js应用程序.
您应该在Node.js应用程序中保留应用程序代码(供应动态响应的代码,如API服务器).
将Node.js应用程序放置在像Nginx这样的代理服务器的同时也是一个好主意,以便代理可以处理所有的客户端交互(如勺子供给慢客户端),使得Node.js应用程序能够做到最好.再次,在低交通情况下,没关系.