URLs bestehen aus Verzeichnissen und Dateinamen. Alles, was vor einem /
steht gilt als Verzeichnis. Alles nach dem abschließenden /
ist der Dateiname. Ihr Problem ist, dass Sie relative URLs verwenden. Wenn Sie sagen
static/pics/gamma.png
Ihr Browser fordert diese Datei relativ zum Verzeichnis der aktuellen Seite an. Bei URLs wie /
und /shop
, das Verzeichnis ist /
. Der Browser fordert /static/pics/gamma.png
an .
Bei URLs wie /shop/item/1
, das Verzeichnis ist /shop/item/
. Ihr Browser fordert dann /shop/item/static/pics/gamma.png
an .
Da Ihre URLs mit den ersteren übereinstimmen, sollten Sie sie als absolute URLs speichern (mit dem führenden /
), damit der Browser die richtige Anfrage stellt.
Nebenbei bemerkt, Sie sollten url_for
verwenden wenn möglich.
url_for('static', filename='css/home.css')