404(未找到):如何在html中显示模型的图像?

时间:2019-07-17 12:32:01

标签: html django-models imagefield

我目前正在试图弄清为什么出现404错误(找不到)的原因。我已经将模型的ImageField上传到静态文件“ article_img”。但是,当我想在html站点上显示存储的图像时,找不到资源。

这是什么原因?

from django.db import models
from django.utils.translation import gettext_lazy as _

class Article(models.Model):
    group = models.ForeignKey(Group, on_delete=models.SET_NULL, verbose_name=_('group'), null=True)
    name = models.CharField(_('name'), max_length=200)
    image = models.ImageField(_('image'), upload_to='./static/lagerverwaltung/article_img/', blank=True, null=True)
   <div id="article_img_div">
        {% load static %}
        {% if article.image %}
            <img class="article_img" type="image" src="{{ article.image.url }}" alt="{% static 'lagerverwaltung/article_img/none.jpg' %}">
        {% endif %}
    </div>

1 个答案:

答案 0 :(得分:1)

由于您使用Django作为Web框架,因此请确保您的项目结构正确。您的静态文件应存储在名为static的文件夹中;例如,带有Django的图像文件应存储在以下位置:

my_app / static / my_app / image.jpg

Django的documentation文件结构也指定了如何提供静态图片。

  

确保django.contrib.static文件包含在INSTALLED_APPS中。

     

定义STATIC_URL:STATIC_URL ='/ static /'

     

在模板中,使用静态模板标记通过配置的STATICFILES_STORAGE为给定的相对路径构建URL。

{% load static %} <img src="{% static "my_app/example.jpg" %}" alt="My image">

就像另一条评论所述,您可以检查开发人员控制台是否有去往该图像的HTTP请求,并且可能在那里找到有关您的问题的更多信息。 (在Chrome中为Ctrl + Shift + I)