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