Acceso a archivos "Media" en Django
Me gustaría amar a Django, pero este negocio de archivos estáticos y multimedia en entornos de desarrollo me está volviendo loco. Por favor, rescátame de mi estupidez.
Estoy en mi máquina de desarrollo. Tengo carpetamedia
en la raíz de mi directorio de proyectos.
Insettings.py
Yo tengo:MEDIA_ROOT = ''
yMEDIA_URL = '/media/'
.
Inurls.py
Yo tengo
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, }),
)
Pero la única forma en que puedo obtener archivos multimedia es haciendo referencia a/media/media/
p.ej. @<img src="/media/media/image.png" />
.
Espero (y quiero)<img src="/media/image.png" />
¿Alguien puede decirme qué está pasando aquí y darme una receta simple para configurar el manejo de archivos multimedia?
Muchas gracias
@ Timmy O'Mahony - ¡gracias! Publicación épica, y muy clara. Pero deja un par de preguntas:
(1) Tengo que usar/media/
y/static/
, nomedia/
ystatic/
comoMEDIA_URL
y ySTATIC_URL
- ¿Me estoy perdiendo de algo
(2) Sicollectstatic
mangueras/static/
, ¿dónde coloca CSS a nivel de sitio, p. los archivos CSS del sitio? No en/static/
, evidentemente.
(3) Los puse en un directorio '_' fuera de la raíz del proyecto y configuréSTATICFILES_DIRS
para señalarlo, y parece que ahí es donde el servidor de desarrollo obtiene sus archivos estáticos, a pesar de laurlpatterns
directiva. Si ESO es incorrecto, ¿dónde coloca CSS a nivel de sitio durante el desarrollo y cuál es el flujo de trabajo alrededor decollectstatic
cuando los modifica: ¿tiene que editarlos en un lugar y recopilarlos en otro lugar después de cada edición?