web-dev-qa-db-fra.com

utiliser une feuille de style css sur un modèle jinja2

Je crée un site Web en utilisant HTML, CSS, FLask et Jinja2.

J'ai une page qui travaille sur un serveur de flacon, les boutons et les étiquettes, etc. sont affichés, mais la feuille de style css que j'ai n'a pas été chargée.

Comment lierais-je une feuille de style à un modèle jinja2? J'ai regardé sur Internet mais je ne sais pas comment.

Voici le lien css stylesheet; devrais-je changer cela, ou le code python?

<link rel="stylesheet" type="text/css" href="styles.css">

voici mon code de flacon:

@app.route('/')
def resultstemplate():
    return render_template('questions.html', head='Welcome!')

voici les emplacements des fichiers:

/python-code.py /templates/template.html /templates/styles.css

21
ptolemy0

Tous les fichiers publics (ceux qui ne sont pas traités, comme les modèles ou les fichiers python) doivent être placés dans des dossiers statiques dédiés. Par défaut, Jinja2 a un dossier statique appelé static.

Cela devrait résoudre votre problème:

  1. Déplacer /templates/styles.css vers /static/styles.css

  2. Mettez à jour votre code avec le code suivant, qui sera traduit dans l'emplacement correct du fichier:

    <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
    

Plus d’informations sur les fichiers statiques dans Jinja2 sont ici .

27
Andrejs Cainikovs
<link rel="stylesheet" type="text/css" href="styles.css">

la valeur de href doit être entre guillemets.

assurez-vous que le nom du fichier et le chemin sont corrects OU essayez ce qui suit. 

<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"/>
4
Sunil B N

L'ordre du gestionnaire pourrait causer les problèmes:

url: /stylesheets static_dir: stylesheets
url: /.* script: helloworld.application

travaillera au lieu de

url: /.* script: helloworld.application
url: /stylesheets static_dir: stylesheets
2
George Nguyen

J'ai essayé presque toutes les solutions sur Stack Overflow. Cela ne fonctionnait que pour moi lorsque j'ai placé le dossier static dans le répertoire same en tant que mon fichier run.py . J'ai modifié la structure de mon dossier à partir de:

app/
    views
    static
    templates
run.py

À:

app/
    views
    templates
static
run.py

Je suppose que déplacer le run.py à la place fonctionnerait aussi. Jetez un coup d'œil à ceci Tutoriel pour les gabarits de Jinja pour plus d'informations. Je ne sais pas pourquoi je devais changer la structure pour que cela fonctionne.

0
wcyn