我目前正在试图弄清为什么出现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>
答案 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)