URL được tạo thành từ các thư mục và tên tệp. Bất kỳ thứ gì đứng trước / được coi là một thư mục. Bất cứ điều gì sau / cuối cùng là tên tệp. Vấn đề của bạn là bạn đang sử dụng các URL tương đối. Khi bạn nói
static/pics/gamma.png
trình duyệt của bạn yêu cầu tệp đó liên quan đến thư mục của trang hiện tại. Trong trường hợp các URL như / và /shop , thư mục là / . Trình duyệt sẽ yêu cầu /static/pics/gamma.png .
Trong trường hợp các URL như /shop/item/1 , thư mục là /shop/item/ . Sau đó, trình duyệt của bạn sẽ yêu cầu /shop/item/static/pics/gamma.png .
Vì URL của bạn khớp với URL cũ, bạn nên lưu trữ chúng dưới dạng URL tuyệt đối (với / đứng đầu ) để trình duyệt sẽ đưa ra yêu cầu chính xác.
Trên một ghi chú bán liên quan, bạn nên sử dụng url_for bất cứ khi nào có thể.
url_for('static', filename='css/home.css')