Django 配置media文件

为什么要配置media

​ 我们自己写的本地网页,不配置media也能访问到项目下的静态文件。但是当项目部署到服务器之后,就无法访问本地的静态文件了。所以为了让项目部署到服务器之后,能够访问静态文件,需要配置media。

1、项目根目录下新建media文件夹

media文件夹就是静态文件上传保存的路径

2、settings.py中添加如下内容

# settings.py import os # Django项目自动配置好的根路径 BASE_DIR = os.path.dirname(os.path.diname(os.path.abspath(__file__))) # TEMPLATES中新添'django.template.context_processors.media' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')] , 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', # 下面这句是新添加的内容 'django.template.context_processors.media', ], }, }, ] # 配置media文件夹的路径 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

3、urls文件中配置路由

# 总项目urls.py from django.views.static import serve from . import settings urlpatterns = [ # server是一个视图函数server(request, path), 通过path找到文件然后返回response # 字典中的document_root是默认参数,不是前端和后端传过来的 url(r'media/(?P<path>.*)$', server, {'document_root': settings.MEDIA_ROOT}) ]

4、模板中使用

... # {{img.url}}是图片路径 <img class="media-object" src="{{ MEDIA_URL }}{{img.url}}" alt="hahaha">
posted @ 2020-08-21 13:02  y0um  阅读(261)  评论(0编辑  收藏  举报

新人优惠服务器