2

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

4

1 回答 1

3

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

正如Django 文档中关于管理静态文件的规定:

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

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

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

因此,Django 文档包含在专用服务器上部署静态文件以及如何配置该服务器的文章。

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

于 2021-08-24T11:33:42.157 回答