【问题标题】:Why serving static files are an issue in Python apps为什么在 Python 应用程序中提供静态文件是一个问题
【发布时间】:2021-10-24 15:14:10
【问题描述】:

我似乎不明白在 Python 应用程序(例如 Django)中提供静态文件的问题。现在我正在阅读 WhiteNoise 的文档,第一个问题是为什么首先开发它?我的意思是它解决了什么问题?为什么我们不能将所有静态文件保存在 /static 文件夹中并将其复制到主机。

【问题讨论】:

  • 你可以,但是你应该配置 Apache/nginx/other webserver 来提供这些文件。默认情况下,Django 不提供静态/媒体文件,因为它可能会更慢,更不安全。
  • Django 服务器不是为了提供静态文件而开发的

标签: python django static hosting whitenoise


【解决方案1】:

我似乎不明白在 Python 应用程序(例如 Django)中提供静态文件的问题。

正如Django documentation on managing static files中所指定的:

这种方法效率极低并且可能不安全,因此不适合生产。

确实,Django 提供静态文件的视图可能效率不高。网络服务器通常会缓存一定数量的文件,使用压缩将这些文件发送到浏览器(如果浏览器接受的话)等。Django 提供静态/媒体文件的视图并非旨在与像 这样的网络服务器竞争apache/nginx.

即使解决了这个问题,使用信号服务器来提供静态内容也不是一个好主意。通常Content D交付N网络 (CDN) 用于查找靠近客户端的服务器,可以为这些文件提供服务。

因此,Django 文档包含deploy static files on a dedicated server 以及如何configure this server 的文章。

whitenoise 包只是尽最大努力使用 Python 视图提供这些文件。 Python 的设计目的是减少程序员的时间,而不是处理时间,因此虽然白噪声很有效,但它很可能无法与 CDN 竞争。

【讨论】:

    猜你喜欢
    • 2021-07-14
    • 2016-12-23
    • 2017-06-08
    • 2016-11-07
    • 2015-01-17
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2013-11-18
    相关资源
    最近更新 更多