3

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

例如,人们的个人资料照片没有显示,但如果该人重新上传一张,它将是可见的。但是,当他们再次注销/登录时,图片不再存在。

什么会导致这种行为,我该如何解决?本地一切正常。

4

2 回答 2

2

我在http://www.gettingstartedwithdjango.com/introduction-and-launch.html#what-heroku-does-every-time-you-push-to-them-is上找到了这些信息

Heroku 每次向他们推送时所做的是:

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

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

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

于 2013-02-07T16:19:59.700 回答
1

这是来自pythonanywhere博客的答案,它可能会回答您的问题。基本上,在投入生产时,设置(在 settings.py 中)DEBUG = False会对篡改图像 url 的文件产生安全锁。

所以基本上文件路径更改是为了MEDIA_ROOT从开发到生产。更多信息请参见此处的博客。

希望这可以帮助!

于 2018-06-16T12:17:33.053 回答