python - tutorial - La plantilla de Django no puede ver los archivos CSS
templates django python (5)
En el servidor de desarrollo, me gusta hacer trampa y poner lo siguiente en mi urls.py
if settings.DEBUG:
urlpatterns += patterns('''',
(r''^includes/(?P<path>.*)$'', ''django.views.static.serve'', {''document_root'': ''/path/to/static/files''}),
)
De esa manera, cualquier cosa en el proyecto bajo la carpeta "/ includes" es el servidor por el servidor dev. Usted podría simplemente cambiar eso a "/ media".
Estoy creando una aplicación django y no puedo obtener las plantillas para ver los archivos CSS ...
MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), ''media'')
MEDIA_URL = ''/media/''
Tengo los archivos CSS en / mysite / media / css / y el código de la plantilla contiene:
<link rel="stylesheet" type="text/css" href="/media/css/site_base.css" />`
Luego, en el archivo url.py tengo:
# DEVELOPMENT ONLY
(r''^media/(?P<path>.*)$'', ''django.views.static.serve'',
{''document_root'': ''/media''}),
pero el servidor de desarrollo sirve el html plano (sin estilos). ¿Qué estoy haciendo mal?
-
OK, lo tengo funcionando basado en lo que ustedes han dicho. La respuesta es:
settings.py:
MEDIA_ROOT = ''d://web//mysite//media//'' #absolute path to media
MEDIA_URL = ''/mymedia/'' #because admin already using /media
site_base.html:
<link rel="stylesheet" type="text/css" href="/mymedia/css/site_base.css" />
urls.py
from mysite import settings
if settings.DEBUG:
urlpatterns += patterns('''',
(r''^mymedia/(?P<path>.*)$'', ''django.views.static.serve'',
{''document_root'': settings.MEDIA_ROOT}),
)
¡Y voilá! Funciona.
También me funcionó, gracias chicos !!
settings.py
MEDIA_ROOT = ''/home/pi/ewspaces/ws-classic/xima/media''
MEDIA_URL = ''/statics/''
urls.py
if settings.DEBUG:
urlpatterns += patterns('''',
(r''^statics/(?P<path>.*)$'', ''django.views.static.serve'',
{''document_root'': settings.MEDIA_ROOT}),
)
plantillas internas:
<link type="text/css" href="/statics/css/base/jquery.ui.all.css" rel="stylesheet" />
Tuve un problema similar cuando intentaba que jQuery funcionara. Mi solución fue agregar un alias a mi archivo httpd.conf de Apache que señalaba a la carpeta que contenía el archivo .js. Podrías hacer lo mismo con tu carpeta CSS.
en el bloque "solo desarrollo" de tus urls.py debes cambiar
(r''^media/(?P<path>.*)$'', ''django.views.static.serve'',
{''document_root'': ''/media''}),
a...
(r''^media/(?P<path>.*)$'', ''django.views.static.serve'',
{''document_root'': settings.MEDIA_ROOT}),
ADMIN_MEDIA_PREFIX
se establece en /media/
de forma predeterminada, y probablemente está "robando" la ruta. Cambie esa configuración o use una diferente para medios que no sean de administración, por ejemplo, site_media
o assets
.