URL's bestaan uit mappen en bestandsnamen. Alles wat voorafgaat aan een / wordt beschouwd als een map. Alles na de laatste / is de bestandsnaam. Uw probleem is dat u relatieve URL's gebruikt. Als je zegt
static/pics/gamma.png
uw browser doet een verzoek om dat bestand ten opzichte van de directory van de huidige pagina. In het geval van URL's zoals / en /shop , de map is / . De browser vraagt om /static/pics/gamma.png .
In het geval van URL's zoals /shop/item/1 , de map is /shop/item/ . Uw browser vraagt dan om /shop/item/static/pics/gamma.png .
Aangezien uw URL's overeenkomen met de eerste, moet u ze opslaan als absolute URL's (met de leidende / ) zodat de browser het juiste verzoek doet.
Op een semi-gerelateerde opmerking, zou u url_for . moeten gebruiken wanneer mogelijk.
url_for('static', filename='css/home.css')