#19046: staticfiles not finding the files on Windows
-------------------------------------+--------------------
     Reporter:  nelutzu_13@…         |      Owner:  nobody
         Type:  Uncategorized        |     Status:  new
    Component:  contrib.staticfiles  |    Version:  1.4
     Severity:  Normal               |   Keywords:
 Triage Stage:  Unreviewed           |  Has patch:  0
Easy pickings:  1                    |      UI/UX:  0
-------------------------------------+--------------------
 I'm using Django 1.4 on Windows XP and when a file is requested from
 STATIC_ROOT I get the following error:

 {{{
 Traceback (most recent call last):
   File "C:\Python27\lib\wsgiref\handlers.py", line 85, in run
     self.result = application(self.environ, self.start_response)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\handlers.py", line 68, in __call__
     return super(StaticFilesHandler, self).__call__(environ,
 start_response)
   File "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py", line
 241, in __call__
     response = self.get_response(request)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\handlers.py", line 58, in get_response
     return self.serve(request)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\handlers.py", line 51, in serve
     return serve(request, self.file_path(request.path), insecure=True)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\views.py", line 35, in serve
     absolute_path = finders.find(normalized_path)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\finders.py", line 238, in find
     result = finder.find(path, all=all)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\finders.py", line 78, in find
     matched_path = self.find_location(root, path, prefix)
   File "C:\Python27\lib\site-
 packages\django\contrib\staticfiles\finders.py", line 95, in find_location
     path = safe_join(root, path)
   File "C:\Python27\lib\site-packages\django\utils\_os.py", line 52, in
 safe_join
     'path component (%s)' % (final_path, base_path))
 ValueError: The joined path (C:\images\common\fnurse.jpg) is located
 outside of the base path component (C:\DJANGO\webtech-proto-work\static)
 [01/Oct/2012 09:34:06] "GET /static/images/common/fnurse.jpg HTTP/1.1" 500
 59
 }}}


 I have traced the cause of the error to line 37 in staticfiles/views.py :

 {{{
 normalized_path = posixpath.normpath(unquote(path)).lstrip('/')
 }}}


 I have replaced the hardcoded '/' to os.sep and after that static files
 have been served on Windows. Please check if this change is correct and if
 it correct than please integrate it.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/19046>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to