一段时间后,我的数据库图像从 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为什么要删图。可能是一些你没有注意到的指令被传递到数据库,或者它可能是一些微妙的东西。我不能对此发表评论。
希望这对您有所帮助。如果需要进一步说明,请告诉我。
我的数据库图像已从 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为什么要删图。可能是一些你没有注意到的指令被传递到数据库,或者它可能是一些微妙的东西。我不能对此发表评论。
希望这对您有所帮助。如果需要进一步说明,请告诉我。