diff --git a/www/conservancy/static/views.py b/www/conservancy/static/views.py index 25a3eed32886ede92d0160983f95b945f47e951d..405b3973bab554ab4873896c2afaee9eb78faa9e 100644 --- a/www/conservancy/static/views.py +++ b/www/conservancy/static/views.py @@ -4,6 +4,7 @@ from django.template import RequestContext, loader from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal STATIC_ROOT = '/home/www/website/www/conservancy/static/' +FILESYSTEM_ENCODING = 'utf-8' def handler(request, errorcode): path = os.path.join('error', errorcode, 'index.html') @@ -36,9 +37,13 @@ def fundgoal_lookup(fundraiser_sought): def index(request, *args, **kwargs): # return HttpResponse("Hello, static world: " + request.get_full_path()) path = request.path + try: + path_bytes = path.encode(FILESYSTEM_ENCODING) + except UnicodeEncodeError: + return handler404(request) if path.endswith(u'/'): path += u'index.html' - fullpath = os.path.join(STATIC_ROOT, path) + fullpath = os.path.join(STATIC_ROOT, path_bytes) if not os.path.exists(fullpath): # return HttpResponse("Sorry that's a 404: " + path) return handler404(request)