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')