部署到Heroku时,Django应用程序中的图像消失了

时间:2012-10-27 22:35:20

标签: django heroku

我已将我的应用程序部署到Heroku,但某些图像不再被加载。

例如,人们的个人资料照片没有显示,但如果该人重新上传,则会显示。但是,当他们再次注销时,图片就不再存在了。

导致此类行为的原因是什么?如何解决?在当地一切正常。

2 个答案:

答案 0 :(得分:1)

我在http://www.gettingstartedwithdjango.com/introduction-and-launch.html#what-heroku-does-every-time-you-push-to-them-is

上找到了这些信息

每次你向他们推送时Heroku的所作所为:

  • 使用自己的虚拟机,虚拟环境和通过pip安装的软件包创建新的应用程序空间。
  • 将子域交换到新位置。
  • 删除旧的应用空间。

这意味着添加到不在Git中的应用程序的任何内容都不会在推送之间持续。更重要的是,这个完全相同的过程无论如何每24小时发生一次,所以上传的文件必须去除Heroku之外的某个地方。

您可能会将此视为问题的可能来源。

答案 1 :(得分:0)

以下是pythonanywhere博客的回答,可以回答您的问题。 基本上,在投入生产时,设置(在settings.py中)DEBUG = False会对文件引发安全锁定,篡改图像网址。

因此,基本上文件路径更改是为了MEDIA_ROOT从开发到生产。 博客上提供的更多信息here

希望这有帮助!