Introduction à django compressor             Mathieu Pillard             https://github.com/diox             @dioxmatRenco...
Présentation●   Application de « gestion » de medias...●    … sans laspect gestion●    Au départ juste une collection de f...
Principes●   Transparent pour les développeurs●    De base, pas de commande de management à    lancer●    Pas de « bundle ...
Fonctionnement de base●   Utilisation du templatetag {% compress %} :    {% compress css %}    <link rel=stylesheet type=t...
Ce que ca sait faire●   Changement automatique et à la volée du ou des fichiers résultat quand    les sources changent●   ...
Comment ca fonctionne derrière●   Vérification du cache « offline » avec un hash de la    nodelist brute. Si présent, reto...
Conclusion●   Utilisé en production sur les projets django de libération●   Le cache est obligatoire pour ne pas utiliser ...
Prochain SlideShare
Chargement dans…5
×

Django compressor

1 729 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 729
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Django compressor

  1. 1. Introduction à django compressor Mathieu Pillard https://github.com/diox @dioxmatRencontres django-fr, 16 avril 2011
  2. 2. Présentation● Application de « gestion » de medias...● … sans laspect gestion● Au départ juste une collection de filtres pour django_compress● Documenté, testé, maintenu● Résout la problématique de base de faire cacher longtemps vos fichiers médias tout en permettant de les expirer immédiatement quand ca change
  3. 3. Principes● Transparent pour les développeurs● De base, pas de commande de management à lancer● Pas de « bundle » à créer dans les settings non plus
  4. 4. Fonctionnement de base● Utilisation du templatetag {% compress %} : {% compress css %} <link rel=stylesheet type=text/css href= 1.css> <link rel=stylesheet type=text/css href= 2.css> <style type=text/css> .pony { color : pink ; } </style> {% endcompress %}● Rendu : <link rel=stylesheet type=text/css href=<hash>.css
  5. 5. Ce que ca sait faire● Changement automatique et à la volée du ou des fichiers résultat quand les sources changent● Filtres disponibles : Minification, Tidy, Closure, Transformation automatique des urls en data URI ...● « Pre-compilers » disponibles : LESS, Cofeescript, SASS● Gère le suffixage des images dans les CSS● Utilisation du cache django● Utilisation des moteurs de stockage django pour le fichier résultat● Commandes de management optionnelles pour générer en « offline » plutôt que en live, ou générer un cache des dates de modification des fichiers
  6. 6. Comment ca fonctionne derrière● Vérification du cache « offline » avec un hash de la nodelist brute. Si présent, retourne alors lHTML.● Instanciation dun parseur (lxml/beautifulsoup), détermine la liste des fichiers, utilise leur nom + date de modif pour faire une clé unique● Vérification du cache principal à partir de cette clé. Si présent, retourne alors lHTML.● Génération du fichier, application filtres/pre- compilers, génération dun hash, écriture du fichier si nécessaire, remplissage du cache, retourne lHTML
  7. 7. Conclusion● Utilisé en production sur les projets django de libération● Le cache est obligatoire pour ne pas utiliser trop de ressources, mais après, ca fuse !● Plein de settings optionnels sympas● Bien maintenu, pas mal de contributeurs, bien documenté (comment ca je répète lintro)● Bref, cest super, utilisez le ! :-)● https://github.com/jezdez/django_compressor , disponible aussi sur pypi

×