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

标签 django apache file nginx static

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

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

最佳答案

这是一个性能问题。

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

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

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

关于django - 为什么静态文件在网络服务器中单独提供?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26105603/

相关文章:

regex - htaccess 文件用破折号或下划线运行

ruby-on-rails - 乘客:在任何来源中都找不到 rake-10.0.4 (Bundler::GemNotFound)

php 函数在每个空行处分割数组?

android - 如何保护移动应用程序的 REST API?

python - Django Rest Framework : AttributeError when Serializer many=False, 但不是当 many=True

Django:在 'User Change' 管理页面上显示 filter_horizo​​ntal

php - Symfony 应用程序 403 禁止错误 : You don't have permission to access/on this server

c# - 管理 C# WPF 应用程序客户端 PC 文件夹中的 3000 个文件

windows - 如何在 Windows 命令行中使用通配符解码多个文件

python - django媒体路径问题