2017-05-26 2 views
0

Il est possible d'intégrer un fichier css au-dessus de la ligne de flottaison/critique dans un modèle django?Fichier CSS en ligne dans le modèle django

Je pensais à quelque chose comme:

<style>{% inline "css/home.above.css" %}</style>

Ce qui donnera:

<style>html {...} body {...} {content of the css file}</style>

Mais je ne l'ai pas trouvé de ressources en ce qui concerne.

+1

Les réponses sur [cette question] (https://stackoverflow.com/questions/33607083/django-template-embed-css-from-file) indiquent que vous pouvez utiliser la balise '{% include%}'. Je ne l'ai pas essayé, cependant. Une autre façon que je peux penser est que vous pouvez lire/ouvrir le fichier CSS dans vos vues et le mettre dans votre contexte de modèle. – xyres

Répondre

1

Pour étendre sur mon commentaire, voici comment vous pouvez transmettre votre fichier CSS à votre contexte de modèle.

def my_view(request): 
    with open('../path/to/style.css') as infile: 
     css = infile.read() 
     # if you want to remove newlines, uncomment the next line 
     # css = css.replace('\n', '') 
     # if you want to remove tabs, uncomment the next line 
     # css = css.replace('\t, '') 

    return render(request, 'template.html', {'css': css}) 

Ensuite, dans votre modèle, vous pouvez utiliser pour accéder {{ css }} l'ensemble du fichier CSS.


NOTE: Au lieu de Je pense que manuellement la suppression des sauts de ligne et les onglets du CSS, il est préférable d'utiliser un compresseur CSS. Par exemple, si vous utilisez 4 espaces au lieu d'onglets, ces espaces supplémentaires ne seront pas supprimés.

Cette bibliothèque semble bonne - csscompressor.

+0

Merci. Je vais essayer d'intégrer le django-compresseur. – maiis