static 静态文件

media 媒体文件

一.首先在setting配置文件中导包和配置路由

import os  # 导入os包否则无效
STATIC_URL = '/static/'
STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATIC_ROOT = "var/www/learning.ywhdsb.site.static/" # 这个好像不影响地址访问
# 这三个必不可少 否则无法media访问
MEDIA_URL = '/media/'
MEDIA_DIR = os.path.join(BASE_DIR, 'media')
MEDIA_ROOT = MEDIA_DIR
STATICFILES_DIRS = [
    STATIC_DIR,
    MEDIA_DIR,
    BASE_DIR / "static",
    'var/www/static/',
]

二.然后再在template中添加

'django.template.context_processors.media',  #media 这个好像不影响地址访问

三.最好在app的urls中添加路由

1.导包

from django.conf import settings
from django.conf.urls.static import static

2.配置

+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

然后就可以访问啦

最后的最后,我想说,遇到问题,一时间解决不了,不要气馁。

补充: 2022.3.6

1️⃣media里面图片和视频都可以放,访问方式不变。
2️⃣一个魔鬼细节就是,debug不能关,关掉debug就Not Found无法访问了。
3️⃣数据库默认是sqlite,可是里面没有集成sqlite,数据库不弄好就会报Internal Server Error。要么改成mysql的数据库,要么把sqlite的删了就可以了。