Je suis un débutant en utilisant Flask. Mes fichiers statiques ne ne fonctionne pas, la racine j'ai cet répertoires d'arbres:Fichiers statiques ne fonctionne pas, en utilisant jinja dans Flask
/ <-------------- launching (flask run) the site, here.
/static
/static/css
/static/js
/static/img
/flask_mysite
/flask_mysite/log
/flask_mysite/templates
La variable d'application flacon:
$ echo $FLASK_APP
flask_mysite/__init__.py
Pour naviguer dans la racine /
dossier, en utilisant un errante VM:
flask run --host=192.168.56.101
Dans le /flask_mysite/__init.py__ J'ai la config Jinjia:
flask_mysite.jinja_env.globals['static'] = (
lambda filename: url_for('static', filename=filename)
)
from flask_mysiteimport views, models
if __name__ == '__main__':
flask_mysite.run(debug=True)
Et, dans le /flask_mysite/templates/base.html, par exemple:
<link rel="stylesheet" href="{{ static('css/main.css') }}">
Ainsi, le code HTML généré:
<link rel="stylesheet" href="/static/css/main.css">
Est-ce qu'une personne peut m'aider s'il vous plaît? :)
Merci. Fabrice
Merci. Mais, en production, ça fonctionne comme ça (avec un hôte virtuel apache). Mais, il en mode local, avec une VM, ne le fait pas. Si je déplace le dossier 'static' dans 'flask_mysite/static'. C'est bon :). – fabrice
En production peut-être votre alias pour "/ static" pourrait être votre dossier statique, en local si vous utilisez aussi Apache vous devriez répliquer la même config, ou utiliser la manière Flask pour servir des fichiers statiques –
Et, je déplace le "statique" dossier sans changer le code comme vous me l'avez dit. #update: Non, en mode local, j'utilise ni apache ni nginx, juste la ligne de commande (flask run) – fabrice