为什么在网络服务器中单独提供静态文件?

dan*_*vic 2 apache django static file nginx

似乎大多数 Web 服务器(Apache、Nginx、Lighthttpd)都将静态文件与 html 文件(不同的配置)分开提供服务。为什么是这样?

我正在尝试使用 Apache 部署我的 Django 应用程序,到目前为止,部署一直很简单。在开发过程中,Django 服务器提供静态文件,我无需费心去配置它。为什么它在真正的网络服务器中有所不同?

dge*_*gel 6

这是性能问题。

在生产设置中,您不希望通过 django 提供静态内容。通过 django 提供静态内容涉及大量开销(加载静态文件、处理 python 字节码、通过 WSGI 等),这对于静态内容是完全不需要的。

Web 服务器本身在提供静态内容方面非常快速和高效,因此通常没有理由在请求中涉及 django/python。

对于没有大量负载的小型站点,您可以让 django 提供静态内容(您需要配置 django 以提供静态内容DEBUG=False),这相对无害,但这不是“正确的方法”它。