我正在使用Django调试模式。我有一个Django视图,显示很多的图像,如1000。 以前,我为每个图像发送了以下Django响应:
django.http.HttpResponseRedirect("/static/thumbs/%s" % thumbnail_filename(url))
即。我正在重定向到Django静态文件服务。 页面将加载,然后图像将开始流入。
我使用Django静态应用程序切换到使用静态文件服务(仍处于调试模式)。现在,runserver日志显示加载的图像要快得多,但它会在几秒钟后出现以下错误:
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
在浏览器方面,我看到Chrome崩溃消息“Aw,Snap!”。
如何解决此错误?
答案 0 :(得分:0)
我最近碰到了这个问题。 Django不应该在生产中返回静态文件。在默认的Django配置中,静态文件应该由Django前面的专用Web服务器(例如Nginx,Apache等)服务器提供。
为了能够使用Django Django提供静态文件,可以选择使用名为django.contrib.staticfiles
的应用程序,该应用程序应包含在INSTALLED_APPS设置中。
默认为INSTALLED_APPS = []
,因此您需要手动添加,例如:
INSTALLED_APPS = [ django.contrib.staticfiles ]