Django 3.1媒体前缀未显示在URL上



我使用的是Django 3.1。

settings.py看起来像

BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'

urls.py看起来像

from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的模型图像字段看起来像

dev_image_one = models.ImageField(upload_to='dev/', blank=True, null=True, verbose_name = 'image 1')

上传文件后,它们最终会出现在/media/dev目录中。

当它们被显示时,url看起来像:

<img src="dev/1.png">

如果我手动将/media/on附加到url的前面,则会显示图像。我以前从来没有遇到过这个问题,所以我不知道出了什么问题。我以前从未使用过3.1,所以我想知道这是否与它无关。静态文件没有问题。谢谢

确保设置.py类似

STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'

在要访问图像的任何页面中加载{% load static %}

使用{% static 'images/india.jpg' %}访问图像

最新更新