【问题标题】:Images disappear in Django app when deployed to Heroku部署到 Heroku 时,图像在 Django 应用程序中消失
【发布时间】:2018-06-17 01:57:48
【问题描述】:

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

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

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

【问题讨论】:

  • 检查图片的路径,看看它们的路径是否设置为本地路径
  • 嗯,它使用 MEDIA_ROOT 目录和 MEDIA_URL 来访问。它们正常工作 1-2 小时左右然后突然消失,这不是很奇怪吗?这让我想知道 Heroku 上是否有一些令人耳目一新的东西并删除它们?
  • 有没有办法让我检查 Heroku 保存照片的路径?
  • 我的应用程序发生了同样的事情,

标签: django heroku


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2020-09-23
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2016-11-16
      • 2021-04-28
      相关资源
      最近更新 更多