djangohttp://127.0.0.1:8000/media/test.jpg直接顯示圖片media配置
阿新 • • 發佈:2018-12-20
檔案目錄如下:
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直接訪問媒體檔案資源了。