2010-04-04 29 views
2

我正在使用django,並意識到當用戶想要訪問的文件名(比方說照片)有英鎊符號時,url.py中的條目不匹配。Django - urls.py - 帶有散列/磅(#)符號的文件名?

任何想法?

url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': 
    MEDIA_ROOT}, 

它只是說:

"/home/user/project/static/upload/images/hello" does not exist 

在實際的文件名是:

hello#world.jpg 

感謝, 尼科

回答

8

這是不是真的Django的故障 - 英鎊(#)登錄URL意味着加載頁面上的指定錨點。您需要將英鎊符號編碼在您的網址以獲得瀏覽器請求完整的圖像路徑:

/home/user/project/static/upload/images/hello%23world.jpg 

在可以使用urlencode模板標籤Django模板。

+5

只需添加:瀏覽器不會從英鎊(#)符號向服務器發送任何內容,這就是您需要對其進行編碼的原因。 – 2010-04-04 07:19:59