Mon image de fond fonctionne uniquement pour ce modèle qui a @ app.route ('/').
<header class="intro-header" style="background-image: url('static/img/home.jpg')">
Cela fonctionne parfaitement bien lorsque:
@app.route('/')
def home():
return render_template('post.html')
Tout fonctionne. J'ai compris:
127.0.0.1 - - [19/Sep/2016 21:07:11] "GET /static/img/home.jpg HTTP/1.1" 304
Mais quand j'utilise le même modèle avec:
@app.route('/post/')
def post():
return render_template('post.html')
J'ai compris:
127.0.0.1 - - [19/Sep/2016 21:15:23] "GET /post/static/img/home.jpg HTTP/1.1" 404 -
Et l'image d'arrière-plan est vide.
C'est un problème simple qui peut être résolu par Flask documentation
Quoi qu'il en soit, vous devez utiliser quelque chose comme ça dans votre modèle:
background-image: url({{ url_for('static', filename='img/home.jpg') }})
mais si vous ne voulez pas utiliser Flask utilisent:
url('/static/img/home.jpg')
ou utilisez un autre serveur Web au lieu de flask serveur Web par défaut pour vos fichiers comme Apache et accès via http://yoursite/static/img/home.jpg
Les URL partielles sont interprétées par rapport à la source de la feuille de style, et non par rapport au document - w3 CSS
Cela signifie que vous devez modifier légèrement votre url()
, pour inclure le premier /
.
"background-image: url('/static/img/home.jpg')"