Django - Servire multimediale
-
27-10-2019 - |
Domanda
Sto cercando di servire i file multimediali caricati dall'utente nel mio ambiente Dev.
#settings.py
#[...]
import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = (os.path.join(SITE_ROOT, 'media/'))
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(SITE_ROOT, 'static/'),
)
#[...]
#url.py
urlpatterns = patterns('',
#[...]
url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], 'django.views.static.serve',
{'document_root', settings.MEDIA_ROOT}
),
url(r'^%s(?P<path>.*)$' % settings.STATIC_URL[1:], 'django.views.static.serve',
{'document_root', settings.STATIC_ROOT}
),
)
Cercando di accedere a un file uploding come http://127.0.0.1:8000/media/videos/julian_06.flv, Ottengo
ValueRror at /media/videos/julian_06.flv
L'elemento sequenza di aggiornamento del dizionario #0 ha lunghezza 40; 2 è richiesto
Soluzione
Consiglierei di provare a seguire i documenti per hosting statico in sviluppo
if settings.DEBUG:
urlpatterns += patterns('django.contrib.staticfiles.views',
url(r'^media/(?P<path>.*)$', 'serve'),
)
MODIFICARE:
Il tuo dizionario dovrebbe avere un :
non ,
tra i 'document_root'
e settings.MEDIA_ROOT
urlpatterns = patterns('',
url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow