Kenneth(请求的作者,受雇于 Heroku)有不同的看法(来源):
实际上,通过 Python/Django 提供静态文件对于生产来说是很好的——这些请求与动态请求没有什么不同。
性能会很棒,但不如 nginx。
如果您非常关心效率,那么无论如何您都不应该将这些文件托管在您的服务器上,而是将它们推送到像 S3+Cloudfront 之类的 CDN 上。
这种方法的另一个好处是开发:生产平价。
而在heroku上,你不能使用Nginx来服务器静态文件,实际上你也不能在大多数其他PaaS上做到这一点,去年我在cloud Foundry上遇到了同样的问题。但是有一个解决方法:
在 Heroku 上,您的应用程序直接响应 HTTP 请求,而不是通过 Apache 或 Nginx 等额外的 Web 服务器。
我们建议大多数应用程序从 Django 或 CDN 提供它们的资产。
由于其静态文件处理程序的设计,Django 不建议在生产中提供静态文件。
幸运的是,有一个名为 DJ-Static 的库,它使用生产就绪的 WSGI 资产服务器。
我在这里为 Django 和静态资产编写了指南:
https ://devcenter.heroku.com/articles/django-assets
阅读以下讨论以获取更多详细信息:
为 Django 应用程序提供静态文件
通过 gunicorn 提供静态文件