一段时间后,我的数据库图像从 Heroku 中删除,但不在数据库中的徽标不会被删除

My database images get deleted from Heroku after some time, but the logo which is not in the database is not deleted

我的数据库图像已从 Heroku 中删除,但未删除徽标。 我使用静态以这种形式显示徽标:

<img src="{% static 'img/techshelta_logo.png' %}">

但是我的数据库图像显示时没有使用静态:

<img src="{{ object.image.url }}" class="img-fluid" alt="object.title">

这就是 Heroku 删除它们的原因吗?

注意 当我尝试使用 static 如下例所示在本地显示数据库图像时,它们不会显示

<img src="{% static 'object.image.url' %}" class="img-fluid" alt="object.title" > 

这三行在我看来代表了三种不同的指令。

指令 1

<img src="{% static 'img/techshelta_logo.png' %}>"

这意味着从静态目录的img子文件夹加载techshelta_logo.png。这应该始终有效,因为 http 服务器在正常情况下不太可能自行删除

指令-2

 <img src="{{ object.image.url }}" class="img-fluid" alt="object.title">

这条指令意味着您正在将对象从您的视图传递到模板。该对象有一个属性图像,它有一个字段url。由于这作为保存图像的 完整 location/path 存储在数据库中,因此这也可能有效。

指令3

<img src="{% static 'object.image.url' %}" class="img-fluid" alt="object.title" > 

'object.image.url' 最有可能存储图像的完整路径。当您将此指令放在静态标记之后时,静态路径(在 SETTINGS.py 中定义)将添加到 'object.image.url' 给出的已经完整的路径之前。最终结果是一个不存在的路径,因此无法显示图像。

说了这么多我也不知道Heroku为什么要删图。可能是一些你没有注意到的指令被传递到数据库,或者它可能是一些微妙的东西。我不能对此发表评论。

希望这对您有所帮助。如果需要进一步说明,请告诉我。