溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

為什么django的template中無法引用MEDIA_URL

發(fā)布時(shí)間:2021-03-10 16:51:56 來源:億速云 閱讀:226 作者:TREX 欄目:開發(fā)技術(shù)

這篇文章主要講解了“為什么django的template中無法引用MEDIA_URL”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“為什么django的template中無法引用MEDIA_URL”吧!

配置如下

TEMPLATES = [

下面

'context_processors': [

中添加

'django.core.context_processors.media',

會(huì)把MEDIA_URL 配置在template中

這樣在template下面 就可以引用MEDIA_URL了

補(bǔ)充知識(shí):在django中使用 MEDIA_URL 和 MEDIA_ROOT

在django上傳圖片前端使用動(dòng)態(tài)的配置方法

MEDIA_ROOT 代表著 要上傳的路徑會(huì)和你在models中寫的上傳的路徑進(jìn)行拼節(jié)形成最終文件上傳的路徑 

MEDIA_URL主要就是映射了 在前端使用media_url當(dāng)你的media_root發(fā)生改變的時(shí)候不用去更改前端模板中的內(nèi)容

前端模板中的寫法

后面是從數(shù)據(jù)庫中 查詢出來的 上傳文件的地址url

"{{ MEDIA_URL }}{{ course_org.image }}"

前端生成的路徑

"/media/org/2017/07/qhdx-logo.png"/

要想正常的顯示圖片 還需要下面幾步:

1 在settings 中配置路徑

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2 在TEMPLATES 中添加一個(gè)上下文環(huán)境 'django.core.context_processors.media', 這個(gè)會(huì)

自動(dòng)的把MEDIA_URL 注冊(cè)到前端的模板中的 沒有這個(gè)上下文環(huán)境 MEDIA_URL在前端是沒有顯示的

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.core.context_processors.media',
      ],
    },
  },

3 在url中配置media請(qǐng)求的url

首先需要導(dǎo)入下面的庫 和在settings 中配置的 MEDIA_ROOT上傳路徑

from django.views.static import serve
from MxOnline.settings import MEDIA_ROOT

配置url 固定的 里面的內(nèi)容不能改的

url(r'media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}),

感謝各位的閱讀,以上就是“為什么django的template中無法引用MEDIA_URL”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)為什么django的template中無法引用MEDIA_URL這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI