summaryrefslogtreecommitdiff
path: root/django/views/static.py
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-03-02 10:40:48 +0000
committerJannis Leidel <jannis@leidel.info>2011-03-02 10:40:48 +0000
commit6b95aa6fb549b3834b7feefc6fbe92f8a50da411 (patch)
tree3eb61bf9218f53eeb963f89ad10e3e1233a36d2c /django/views/static.py
parentec193224d3580fbcfa78da96a6a7fc4343929dd8 (diff)
Fixed #15531 -- Partially reverted [15701] due to compatibility issues with middlewares that modify content of responses. Thanks for the report, schinckel. Refs #15281.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15703 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/views/static.py')
-rw-r--r--django/views/static.py33
1 files changed, 2 insertions, 31 deletions
diff --git a/django/views/static.py b/django/views/static.py
index 96acc859f1..c058cd3ff8 100644
--- a/django/views/static.py
+++ b/django/views/static.py
@@ -9,39 +9,10 @@ import posixpath
import re
import urllib
-from django.template import loader
from django.http import Http404, HttpResponse, HttpResponseRedirect, HttpResponseNotModified
-
-from django.template import Template, Context, TemplateDoesNotExist
+from django.template import loader, Template, Context, TemplateDoesNotExist
from django.utils.http import http_date, parse_http_date
-
-class FileWrapper(object):
- """
- Wrapper to convert file-like objects to iterables
- """
- def __init__(self, filelike, blksize=8192):
- self.filelike = filelike
- self.blksize = blksize
- if hasattr(filelike,'close'):
- self.close = filelike.close
-
- def __getitem__(self,key):
- data = self.filelike.read(self.blksize)
- if data:
- return data
- raise IndexError
-
- def __iter__(self):
- return self
-
- def next(self):
- data = self.filelike.read(self.blksize)
- if data:
- return data
- raise StopIteration
-
-
def serve(request, path, document_root=None, show_indexes=False):
"""
Serve static files below a given point in the directory structure.
@@ -85,7 +56,7 @@ def serve(request, path, document_root=None, show_indexes=False):
if not was_modified_since(request.META.get('HTTP_IF_MODIFIED_SINCE'),
statobj.st_mtime, statobj.st_size):
return HttpResponseNotModified(mimetype=mimetype)
- response = HttpResponse(FileWrapper(open(fullpath, 'rb')), mimetype=mimetype)
+ response = HttpResponse(open(fullpath, 'rb').read(), mimetype=mimetype)
response["Last-Modified"] = http_date(statobj.st_mtime)
response["Content-Length"] = statobj.st_size
if encoding: