Node.js 使用Express提供静态文件还是使用Express仅访问后端?

Node.js 使用Express提供静态文件还是使用Express仅访问后端?,node.js,express,static-files,Node.js,Express,Static Files,出于什么原因,您会使用路由通过Express提供静态HTML/CSS/JS文件,而不是直接访问这些文件,然后使用Express纯粹与后端交互 例如,我可以直接访问某个网页,即我在某处托管的网页,该网页反过来使用JS向托管在某处的Express服务器发出获取请求 或者,我可以单独指定我的域通过其IP地址与Express服务器交互,并让Express提供这些静态文件 为什么我会使用一个而不是另一个 希望这是有意义的,如果我错过了一个技巧,请道歉——这对所有这些都是比较新的 谢谢 出于什么原因,您会使

出于什么原因,您会使用路由通过Express提供静态HTML/CSS/JS文件,而不是直接访问这些文件,然后使用Express纯粹与后端交互

例如,我可以直接访问某个网页,即我在某处托管的网页,该网页反过来使用JS向托管在某处的Express服务器发出获取请求

或者,我可以单独指定我的域通过其IP地址与Express服务器交互,并让Express提供这些静态文件

为什么我会使用一个而不是另一个

希望这是有意义的,如果我错过了一个技巧,请道歉——这对所有这些都是比较新的

谢谢

出于什么原因,您会使用路由通过Express提供静态HTML/CSS/JS文件

如果您的文件是真正静态的(其中根本没有动态内容),那么谁为它们提供服务就无关紧要了。你可以在任何地方为他们服务。然后,您必须管理两个域,并确保服务器已正确设置为
CORS
访问。您甚至可以使用同一个域,并使用类似NGINX的代理,该代理只提供静态内容,同时将所有其他内容转发到Express服务器

如果您正在动态生成任何内容(就像许多使用模板引擎并从服务器的数据库生成HTML内容的网站一样),那么从Express服务器为您的内容提供服务是非常有意义的

我不建议通过直接IP地址与您的Express服务器连接,因为在扩展、更改托管设施、负载平衡等方面,使用DNS名称的灵活性要小得多。。。因此,如果您打算从其他地方提供静态内容,那么可以在同一个域上使用代理,或者使用两个单独的域

从Express server获取静态内容的主要原因是,您希望提高可伸缩性,并且当前的负载对于Express server来说太大。在这种情况下,通常获得可伸缩性提升的最简单方法是将静态文件服务转移到另一个系统。如果你的网站规模仍然很小,那么我不会建议你把事情弄得比实际需要的更复杂。保持事情在低水平上简单。随着负载的增加,然后投资将静态服务剥离给另一个主机