Django : Gestion des assets

C’est cool de faire du backend, mais il faut aussi manger du front dans une appli. Pire, il va même falloir toucher à du Javascript. Nan j’déconne, pas aujourd’hui, t’iquiètes pas, moi aussi je déteste ce truc.

créer formulaire python

Changer l’apparence de ton application

C’est assez étonnant. Django dispose d’une variable STATICFILES_FINDERS, qui contient un tableau qui va charger des classes responsable de trouver les fichiers statiques de votre projet. Ce qui est perturbant, c’est que ce fichier de configuration se trouve dans le dossier Django, dans lequel j’aurais tendance à ne rien modifier, un peu comme dans le dossier /vendor d’une application PHP.

Mais du coup, on retrouve dedans django.contrib.staticfiles.finders.AppDirectoriesFinder
qui est responsable d’aller chercher les fichiers statiques de toutes vos apps (polls) dans nom_app/static/encore_nom_app/fichier.*

Ca ne choque personne d’avoir deux fois le nom de l’appli dans le chemin ? Surtout qu’on peut l’appeler dans les templates en faisant href= »{% static ‘polls/style.css’ %} »
donc j’ai envie de dire, watafak ?

Donc, on ouvre polls/templates/polls/index.html et on ajoute :

{% load staticfiles %}

<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />

staticfiles est là pour charger les fichiers globaux de votre projet si j’ai bien compris, et surtout te permettre d’utiliser le tag static. static est là pour générer la bonne url publique depuis vos templates. Mais du coup, je ne comprends pas pourquoi il ne va pas les charger tout seul, quand je j’accède aux différentes applications. Surtout que ça génère des url absolues.

Tu vas voir, c’est pas terminé, on a la même chose avec les images.

Les images, même combat

Alors mettre les images hors du répertoire public ça peut être pratique. Par contre, ça veut probablement dire que Django génère des liens symboliques vers les applications, et donc vers votre code. Je suppose qu’il gère ça bien, mais ça doit un peu te faire peur aussi de mettre ton code dehors, à la mode WordPress ?

C’est vachement pratique de ne pas avoir à se soucier des appels vers ces fichiers quand on envoie en production. Surtout si tu veux versionner les fichiers assets à chaque déploiement, et t’éviter de dire à tout le monde de rafraichir la page pour avoir la nouvelle version. Django a l’air d’aller vachement plus loin sur le déploiement, mais on verra une prochaine fois.

metrogeek

Laisser un commentaire