为什么Django无法在该路径上找到图像?

时间:2019-08-31 12:47:05

标签: python django

所以。这是我的第一个Django项目。我正在使用Django Admin模板添加/编辑/删除内容。

我添加了将图像添加到特定部分的选项。这是模型

class Project(models.Model):
    title = models.CharField(max_length = 100)
    description = models.TextField()
    technology = models.CharField(max_length = 20)
    image = models.ImageField(upload_to = "projects/images/")

它有效。它会在 project 目录中创建 images 目录,该目录位于根目录中。

当我在模板中加载图像时,我用

加载图像
<img src="/{{project.image.url}}" alt="" class="card-img-top">

然后在HTML中创建 元素

<img src="/projects/images/106780.jpg" alt="" class="card-img-top">

但是在客栈控制台上,它说找不到图片

http://127.0.0.1:8000/projects/images/106780.jpg

我的目录具有此层次结构

portfolio
|
|__ blog
|__ projects
    |__ __pycache__
    |__ images
    |__ migrations
    |__ templates
    |__ ...
|__ venv
|__ db.sqlite3
|__ manage.py

1 个答案:

答案 0 :(得分:0)

此处您使用的是静态路径作为图片

<img src="/{{project.image.url}}" alt="" class="card-img-top"> <img src="/projects/images/106780.jpg" alt="" class="card-img-top">

您需要使用动态路径,以便服务器可以理解图像的完整路径。

<img src="{% get_media_prefix %}{{project.image.url}}" alt="" class="card-img-top">

希望这可以解决您的问题。 有关更多信息,请访问官方文档Django version 2.2 - media path