0

所以我终于能够建立我正在研究的本地+产品测试项目。

# wsgi.py 
from dj_static import Cling, MediaCling

application = Cling(MediaCling(get_wsgi_application()))
application = DjangoWhiteNoise(application)

我使用 whitenoise(没有任何问题)和媒体(文件上传)设置静态文件,使用dj_static和 Postgres for local + prod。一开始一切正常...静态文件,文件上传。

但是在 Heroku dynos 重新启动后,我丢失了所有文件上传。我的问题是,--- 因为我是从 Django 应用程序而不是像 S3 那样提供媒体文件,所以测功机重启是否也会消除所有这些?

PS:我知道我可以用 AWS 等做到这一点,但我只想知道这是否是我丢失所有上传的原因。

4

1 回答 1

6

由于我从 Django 应用程序而不是 S3 之类的应用程序提供媒体文件,因此测功机重新启动是否也会消除所有这些?

是的!。这是正确的。根据Heroku 文档

每个 dyno 都有自己的临时文件系统,以及最近部署的代码的新副本。

另请参阅答案和答案。

结论:对于媒体文件(上传的),您必须使用一些外部服务(如 S3 或其他东西)。whitenoise仅适用于静态文件。请参阅此处为什么白噪声不适合为用户上传的(媒体)文件提供服务。

于 2017-04-15T06:30:43.580 回答