Añadir hoja de estilo en Django

Para añadir hojas de estilo, el directorio de imágenes y  los ficheros javascript de forma que Django sepa dónde está cada cosa y cómo llegar.  Una de las formas de resolver esto es la siguiente: suponer que tenemos la siguiente jerarquía de directorios, dentro del proyecto principal.

$ tree templates/
templates/
|-- css
|-- images
`-- js

Lo primero que tenemos que hacer es incluir las siguientes URL's en el fichero urls.py:
_______________________________________________________
# Media (r'css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT + 'templates/css'}), (r'images/(?P<path>.*)$', 'django.views.static.serve',  {'document_root': settings.STATIC_ROOT + 'templates/images'}), (r'js/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT + 'templates/js'}),
_______________________________________________________

También, tenemos que incluir al inicio del fichero urls.py el import necesario para usar la variable STATIC_ROOT:
_______________________________________________________
import settings
_______________________________________________________

Ahora, tenemos que definir esta variable en el settings.py. Lo que haremos es colocarla como la ruta hasta la aplicación:
_______________________________________________________
STATIC_ROOT = '/path/to/app/'
_______________________________________________________

Y por último, tenemos que actualizar la lista TEMPLATE_DIRS con la url hasta el directorio template:
_______________________________________________________
STATIC_ROOT + 'templates/',
_______________________________________________________

Con esto, ya tenemos todo le necesario para usar las CSS en nuestra aplicación. Cuando se haga referencia a qué hoja de estilo coger en el html, ésta debe apuntar a la raíz del template, con lo que quedaría así:

<link href="/css/style.css" rel="stylesheet" type="text/css"/>


Referencias

0 comentarios:

Publicar un comentario en la entrada