2013-09-28 43 views
1

未找到引用我刚才的问题can only concatenate tuple (not "unicode") to tuple静态媒体形象在Django

现在,我得到以下错误,当我尝试对媒体文件的URL GET请求

Page not found (404) 
Request Method: GET 
Request URL: http://localhost:8000/media/media/abyss.jpg 

Urls.py

urlpatterns = patterns('', 
         url(r'^admin/', include(admin.site.urls)), 
         url(r'^$', 'blog.views.index'), 
         url(r'^blog/(?P<slug>[\w\-]+)/$', 'blog.views.article'), 
         url(r'^(.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), 
         ) 
+0

你的url.py看起来像什么? – Mingyu

+2

@AjayKumar请更新问题,而不是在评论中发布。 –

+0

请查看所有文件信息的 – ajkumar25

回答

0

我有同样的问题,在这里我就是这样做来解决这个问题: 我的项目结构

./django_site 
    app1/ 
    app2/ 
    media/ 
    django_site/ 
    settings.py 
    #your other basic config stuff in here 

在settings.py:

MEDIA_ROOT = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'media') 
MEDIA_URL = '/media/' 

在urls.py inside sub -directory django_site/

#the main url patterns 
urlpatterns = patterns('', 
#urls 
) 

"""Here's where we're putting the route to serve media from MEDIA_URL. 
I couldn't get this part to work inside the inital declaration of urlpatterns. 
Maybe you'll have better luck """ 

urlpatterns += patterns('', 
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT})) 

然后在模板:

<img src="{{ MEDIA_URL }}{{ image_name }}" height="200" width="400"/> 

我从一个函数基于视图传递image_name。看起来,您必须定义http://somesite.com/media/网址,以便能够从MEDIA_URL拉回媒体。我没有在文档中明确地看到这一点,但是,除非您配置url路由,否则GET请求似乎总是失败。现在,我从模板中或直接通过网址提取文件。希望这可以帮助!

相关问题