在Django / Heroku上处理用户生成的静态文件的最佳方法是什么?用于静态文件的Django系统似乎过于复杂(为什么你需要collectstatic
?),加collectstatic
似乎只适用于运行应用程序之前已知的文件,即它不是处理任何用户生成的静态文件。
处理用户生成的静态文件的最佳/规范方法是什么?具体来说,我正在寻找创建一些图像的缩略图,我需要将它们存储在某个地方。
答案 0 :(得分:1)
Django采用模块化设计方法。每个应用程序都可以拥有自己的静态文件。例如,Django管理界面有一堆css和图像等,你安装的其他第三方应用程序也可能有静态资产。 collectstatic
的目的是将所有这些资产收集到生产中的一个中心目录中,其中Django本身不会像开发中那样提供静态资产,而是来自Apache或Nginx。
在此处阅读:https://docs.djangoproject.com/en/dev/howto/static-files/
根据用户生成的静态内容,我猜您的意思是文件上传。这些与静态资产不同,并且处理方式不同。在这里,您可以设置MEDIA_ROOT
上传媒体的位置。我不能代表Heroku发言,但我认为通常的做法是将媒体上传到AWS S3存储桶。 Checkout Django-Storages具有各种文件存储后端供您插入。 https://pypi.python.org/pypi/django-storages