Django在显示大量静态内容时破坏了管道?

时间:2011-11-04 03:23:23

标签: django

我正在使用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!”。

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我最近碰到了这个问题。 Django不应该在生产中返回静态文件。在默认的Django配置中,静态文件应该由Django前面的专用Web服务器(例如Nginx,Apache等)服务器提供。

为了能够使用Django Django提供静态文件,可以选择使用名为django.contrib.staticfiles的应用程序,该应用程序应包含在INSTALLED_APPS设置中。

默认为INSTALLED_APPS = [],因此您需要手动添加,例如:

INSTALLED_APPS = [ django.contrib.staticfiles ]