web-dev-qa-db-fra.com

Comment utiliser moins de CSS avec Django?

J'utilise Twitter bootstrap et Django. J'ai mes dépendances gérées avec un fichier d'exigences pip.

J'ai 2 questions:

  1. Comment puis-je utiliser moins pendant le développement afin qu'il soit compilé lorsque je modifie l'un de mes fichiers less?
  2. Comment puis-je créer une sorte de script de construction qui compressera et combinera mon JS et générera du CSS à partir de Less dans le cadre d'un déploiement?

J'ai écrit un script de construction personnalisé qui crée un virtualenv, exécute 'pip install -r requirements.txt', Django syncdb, Django migre puis s'éteint) nous allons.

Quelle est la façon la plus simple d'intégrer moins dans tout cela?

Merci

40
user1037541
  1. Installer Django-static-precompiler:

    1. Courir pip install Django-static-precompiler
    2. Ajouter static_precompiler à INSTALLED_APPS
  2. Installez lessc exécutable , soit via votre gestionnaire de paquets, soit exécutez npm install less ( npm est le gestionnaire de paquets de nœuds , qui devrait être installable par distribution, à utiliser en dernier recours)

  3. Utilisez moins dans les modèles :

    1. Chargez la balise de modèle : {% load less %}
    2. Utilisez moins de balises de modèle : <link rel="stylesheet" href="{{ STATIC_URL}}{% less "path/to/styles.less" %}" />

Notez que par défaut, les fichiers compilés sont enregistrés dans le dossier COMPILED sous votre STATIC_ROOT (ou MEDIA_ROOT si vous n'avez pas STATIC_ROOT dans vos paramètres). Vous pouvez modifier ce nom de dossier avec STATIC_PRECOMPILER_OUTPUT_DIR réglage. Voir documentation pour plus de détails.

Je ne l'ai pas essayé personnellement mais je sais que Django-compresseur prend également en charge moins.

43
jpic

La réponse sélectionnée est désormais obsolète: Django-less n'est plus maintenu (comme spécifié sur sa page pypi ), et le développeur suggère d'utiliser Django-static-precompiler à la place.

15
brianmearns