2016-06-16 42 views
0

我想在Django中播放音頻,但它無法找到音頻文件。我已經設置了MEDIA_URL和MEDIA_ROOT,但它仍然不起作用。請幫幫我。 下面是代碼片段圖像和聲音(媒體)不顯示在Django

settings.py

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

urls.py

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$',home), 
] 

if settings.DEBUG: 
    urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT 

home.html做爲

{% extends "layout/base.html" %} 
{% block content %} 
    <h1> Sound Assessment Toolset </h1> 
    <audio src="{{MEDIA_URL}}master_sound/piano.mp3"></audio> 
    <img src="{{ MEDIA_URL }}images/batman.jpg"/> 
{% endblock %} 

Image of Project Directory

日誌文件:

Django version 1.8.7, using settings 'Sound_Assessment.settings' 
Starting development server at http://127.0.0.1:8800/ 
Quit the server with CONTROL-C. 
[17/Jun/2016 15:18:43] "GET/HTTP/1.1" 200 746 
[17/Jun/2016 15:18:43] "GET /images/batman.jpg HTTP/1.1" 404 2321 
[17/Jun/2016 15:18:43] "GET /master_sound/piano.mp3 HTTP/1.1" 404 2336 
[17/Jun/2016 15:18:43] "GET /images/batman.jpg HTTP/1.1" 404 2321 

回答

0

您需要添加媒體模板,背景處理器在您的settings.py文件:

TEMPLATES = [ 
    { 
     ... 
     'OPTIONS': { 
      'context_processors': [ 
       ... 
       'django.template.context_processors.media', 
      ], 
     }, 
    }, 
] 

然後你會在你的模板有{{ MEDIA_URL }}

+0

謝謝。這工作。 –

0

您實際上並不要求MEDIA_URL下這些元素,你可以從日誌文件中看到。

這是因爲您實際上沒有將這些變量傳遞給模板,所以它們被忽略。

+0

您好我是新來的Django,可以請您給的它是如何做到的例子嗎? –

0

我從這個線程 Django MEDIA_URL and MEDIA_ROOT

我所做的是在settings.py加入這一行「django.core.context_processors.media」模板Context_Processor內得到了答案。

這裏

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'app/templates')] 
     , 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       ... 
       'django.core.context_processors.media', 
      ], 
     }, 
    }, 
]