文件目录如下:
1、在settings中加入:
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
#MEDIA_DIR (主要用于获取路径)
MEDIA_DIR = os.path.join(BASE_DIR,'media') # 需要加入的MEDIA_DIR路径变量
#MEDIA_ROOT(主要用于告诉服务器去哪里找媒体文件)
MEDIA_ROOT = MEDIA_DIR # 加入的变量MEDIA_ROOT
#MEDIA_URL (主要用于客户端可通过URL直接访问)
MEDIA_URL = '/media/' # 此次加入的变量MEDIA_URL
2、我们想在模板中引用到 MEDIA_ROOT 的路径,我们就需要在settings.py文件中
新加入:django.template.context_processors.media
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [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.core.context_processors.media', #新加入],},},
]
3、项目的urls.py文件中url映射列表后面加入:
from django.conf import settings # 新加入
from django.contrib.staticfiles.urls import staticfiles_urlpatterns #新加入
from django.conf.urls.static import static # 新加入urlpatterns = [url(r'^hello$', view.hello),
]+ staticfiles_urlpatterns()+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # 新加入,切记此处的settings不是文件目录中的
做完以上步骤我们就可以通过url直接访问媒体文件资源了。
参考自https://blog.csdn.net/qq_40134903/article/details/81278233
也试过网上这种办法:
发现就是行不通,也不知道为什么,如若有哪位大神知道,不妨指导下
同样在网站在发布后,也能看到