static: Encode paths as UTF-8 before translating to the filesystem.
This commit is contained in:
		
							parent
							
								
									39314c254e
								
							
						
					
					
						commit
						6b1b3b8f2e
					
				
					 1 changed files with 7 additions and 1 deletions
				
			
		|  | @ -4,6 +4,7 @@ from django.template import RequestContext, loader | ||||||
| from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal | from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal | ||||||
| 
 | 
 | ||||||
| STATIC_ROOT = '/home/www/website/www/conservancy/static/' | STATIC_ROOT = '/home/www/website/www/conservancy/static/' | ||||||
|  | FILESYSTEM_ENCODING = 'utf-8' | ||||||
| 
 | 
 | ||||||
| def handler(request, errorcode): | def handler(request, errorcode): | ||||||
|     path = os.path.join('error', errorcode, 'index.html') |     path = os.path.join('error', errorcode, 'index.html') | ||||||
|  | @ -36,9 +37,14 @@ def fundgoal_lookup(fundraiser_sought): | ||||||
| def index(request, *args, **kwargs): | def index(request, *args, **kwargs): | ||||||
|     # return HttpResponse("Hello, static world: " + request.get_full_path()) |     # return HttpResponse("Hello, static world: " + request.get_full_path()) | ||||||
|     path = request.path |     path = request.path | ||||||
|  |     try: | ||||||
|  |         path_bytes = path.encode(FILESYSTEM_ENCODING) | ||||||
|  |     except UnicodeEncodeError: | ||||||
|  |         # If the path can't be expressed on the filesystem, it must not exist. | ||||||
|  |         return handler404(request) | ||||||
|     if path.endswith(u'/'): |     if path.endswith(u'/'): | ||||||
|         path += u'index.html' |         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): |     if not os.path.exists(fullpath): | ||||||
|         # return HttpResponse("Sorry that's a 404: " + path) |         # return HttpResponse("Sorry that's a 404: " + path) | ||||||
|         return handler404(request) |         return handler404(request) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Brett Smith
						Brett Smith