彻底简化 Python Web 应用的静态文件服务
只需几行配置,WhiteNoise 便可让您的 Web 应用提供自己的静态文件,使其成为一个独立的单元,可部署在任何地方,而无需依赖 nginx、Amazon S3 或任何其他外部服务。(在 Heroku、OpenShift 和其他 PaaS 提供商上尤其有用。)
它旨在与高流量站点的 CDN 完美配合,因此您不必牺牲性能即可享受简单性。
WhiteNoise 可与任何兼容 WSGI 的应用程序配合使用,但针对 Django 有一些特殊的自动配置功能。
WhiteNoise 为您提供最佳实践,例如:
-
提供压缩内容(gzip 和 Brotli 格式,正确处理 Accept-Encoding 和 Vary 标头)
-
对不会改变的内容设置未来缓存标头
要求
WhiteNoise 可与任何兼容 WSGI 的应用程序配合使用。
支持 Python 3.8 至 3.13。
支持 Django 4.2 到 5.2。
安装
安装方式:
pip install whitenoise
Django 应用快速入门
编辑您的settings.py
文件并将 WhiteNoise 添加到列表中,除了 Django 的SecurityMiddlewareMIDDLEWARE
之外,它位于所有其他中间件之上:
MIDDLEWARE = [
# ...
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
# ...
]
就这样,您就可以开始了。
想要永久缓存文件和压缩支持?只需将其添加到您的设置文件中:
STORAGES = {
# ...
"staticfiles": {
"BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage",
},
}
配置好这些 然后收集静态文件
python manage.py collectstatic