Las URL se componen de directorios y nombres de archivos. Todo lo que precede a un / se considera un directorio. Cualquier cosa después del / final es el nombre del archivo. Su problema es que está utilizando URL relativas. Cuando dices
static/pics/gamma.png
su navegador realiza una solicitud de ese archivo en relación con el directorio de la página actual. En el caso de URL como / y /shop , el directorio es / . El navegador solicitará /static/pics/gamma.png .
En el caso de URL como /shop/item/1 , el directorio es /shop/item/ . Su navegador solicitará /shop/item/static/pics/gamma.png .
Dado que sus URL coinciden con las anteriores, debe almacenarlas como URL absolutas (con el / inicial ) para que el navegador realice la solicitud correcta.
En una nota semi-relacionada, deberías usar url_for cuando sea posible.
url_for('static', filename='css/home.css')