为啥静态文件在网络服务器中单独提供?
Posted
技术标签:
【中文标题】为啥静态文件在网络服务器中单独提供?【英文标题】:Why are static files served separately in webservers?为什么静态文件在网络服务器中单独提供? 【发布时间】:2014-11-24 04:23:03 【问题描述】:似乎大多数 Web 服务器(Apache、nginx、Lighthttpd)与 html 文件分开提供静态文件(不同的配置)。这是为什么呢?
我正在尝试使用 Apache 部署我的 Django 应用程序,到目前为止的部署非常简单。在开发过程中,Django 服务器提供静态文件,而我无需费心对其进行配置。为什么在真实的网络服务器中会有所不同?
【问题讨论】:
【参考方案1】:这是一个性能问题。
在生产设置中,您不希望通过 django 提供静态内容。通过 django 提供静态内容涉及大量开销(加载静态文件、处理 python 字节码、传递 WSGI 等),这对于静态内容是完全不必要的。
Web 服务器本身在提供静态内容方面非常快速和高效,因此通常没有理由在请求中涉及 django/python。
对于没有大量负载的小型网站,您可以让 django 提供静态内容(您需要将 django 配置为使用 DEBUG=False
提供静态内容),它相对无害,但不会是'正确的方法'。
【讨论】:
以上是关于为啥静态文件在网络服务器中单独提供?的主要内容,如果未能解决你的问题,请参考以下文章