Tôi có chế độ xem trong ứng dụng Django tự động tạo hình ảnh bằng PIL, lưu trữ nó trong máy chủ phương tiện Nginx và trả về mẫu html có thẻ img trỏ tới url của nó.Hình ảnh Django và được tạo động
Điều này hoạt động tốt, nhưng tôi nhận thấy có vấn đề. Cứ mỗi 5 lần tôi truy cập chế độ xem này, trong 1 trong số đó, hình ảnh không hiển thị.
tôi đã làm một số điều tra và tôi thấy một cái gì đó thú vị, đây là phản ứng tiêu đề HTTP khi hình ảnh làm cho đúng:
Accept-Ranges:bytes
Connection:keep-alive
Content-Length:14966
Content-Type:image/jpeg
Date:Wed, 18 Aug 2010 15:36:16 GMT
Last-Modified:Wed, 18 Aug 2010 15:36:16 GMT
Server:nginx/0.5.33
và đây là tiêu đề khi hình ảnh không tải:
Accept-Ranges:bytes
Connection:keep-alive
Content-Length:0
Content-Type:image/jpeg
Date:Wed, 18 Aug 2010 15:37:47 GMT
Last-Modified:Wed, 18 Aug 2010 15:37:46 GMT
Server:nginx/0.5.33
Lưu ý rằng Nội dung-Lenth bằng 0. Điều gì có thể gây ra điều này? Bất kỳ ý tưởng về làm thế nào tôi có thể tiếp tục gỡ lỗi vấn đề này?
Chỉnh sửa: Khi chế độ xem được gọi, nó gọi phương thức "vẽ" này của mô hình. Đây là cơ bản những gì nó (Tôi đã gỡ bỏ phần lớn các mã cho rõ ràng):
def draw(self):
# Open/Creates a file
if not self.image:
(fd, self.image) = tempfile.mkstemp(dir=settings.IMAGE_PATH, suffix=".jpeg")
fd2 = os.fdopen(fd, "wb")
else:
fd2 = open(os.path.join(settings.SITE_ROOT, self.image), "wb")
# Creates a PIL Image
im = Image.new(mode, (width, height))
# Do some drawing
.....
# Saves
im = im.resize((self.get_size_site(self.width),
self.get_size_site(self.height)))
im.save(fd2, "JPEG")
fd2.close()
Edit2: Đây là website: http://xxxcnn7979.hospedagemdesites.ws:8000/cartao/99/
nếu bạn tiếp tục nhấn F5 hình ảnh ở bên phải sẽ cuối cùng render.
Khi hàm lượng độ dài bằng không, bạn có thể nói nếu hình ảnh được tạo thành công và tồn tại trên máy chủ? –
Có, nó đã được tạo chính xác, khi bạn cố truy cập trực tiếp url hình ảnh nó sẽ mở ra. –
Tại sao bạn chắp thêm và thay đổi chuỗi truy vấn nhận được? –