martes, 11 de octubre de 2016

Hacer que Apache sirva los ficheros estáticos

Si habéis seguido todas mis entradas os dareis cuenta de que Apache aún no es capaz de servir en red los ficheros estáticos y las vistas de las páginas se quedan en la base, viéndose algo cutres.

Solamente hay que hacer una pequeña modificación en un fichero de configuración para hacer que sea capaz de cargar los estilos y las imágenes.

Si recordamos cuando instalamos Apache creamos un nuevo sitio en el directorio /etc/apache2/sites-available el cual se llamaba domobois.conf. Este fichero indicaba básicamente donde estaba el script de conexión entre Apache y nuestro proyecto de Django.

El fichero en cuestión tenía esta pinta



Para que sirva ficheros estáticos únicamente, según la documentación hay que añadirle unas cuántas líneas más.

https://docs.djangoproject.com/es/1.10/ref/contrib/staticfiles/
https://docs.djangoproject.com/es/1.10/howto/deployment/wsgi/modwsgi/

Lo dejamos de la siguiente manera









Lo que se hace es definir un alias con la ruta estática donde se encuentran nuestros archivos estáticos.

También es necesario modificar el settings.py de nuestro proyecto, que si recordamos se encontraba en la ruta /var/www/domobois/domobois/settings.py 

El primer lugar donde inicia el manejo de los archivos estáticos reside en este archivo, tenemos líneas exclusivamente dedicadas al manejo del contenido estático.
Existen 4 elementos: STATIC_ROOT, STATIC_URL, STATICFILES_DIRS, STATICFILES_FINDERS. Cada uno de ellos con un propósito documentado en el mismo archivo settings.py a modo de comentario.

Debemos prestar atención a STATICFILES_DIRS, este elemento permite declarar la ruta, desde la cual se enlazará el contenido estático.

Veamos como debe quedar el fichero:

 

Tenemos en la documentación más información a lo que se refieren estas variables en este link

Por último, utilizamos el comando  ./manage.py collectstatic para crear todos los archivos estaticos referidos a nuestro proyecto desde el directorio donde se encuentra nuestro manage.py del proyecto.

Probamos si funcionan ahora los archivos estáticos, pero no sin antes hacer un sudo service apache2 restart para reiniciar nuestro servidor apache.

En este momento, si abrimos en el navegador de cualquier dispositivo conectado a nuestra red LAN y tecleamos http://192.168.0.100/domobois debería de aparecer el index de nuestro proyecto django. O al menos a mi sí ;)

Un saludo.

No hay comentarios:

Publicar un comentario