首页 > 代码库 > [django]media_url

[django]media_url

django将文件上传到media文件夹,想要在前端通过{{ MEDIA_URL }}显示出来时发现没用

settings.py中这样设置

 

1 MEDIA_URL = /media/
2 
3 MEDIA_ROOT = os.path.join(BASE_DIR, Media)


 html中代码

1 <img src="{{ MEDIA_URL }}learndjango.jpg" alt="">

访问页面的时候审查元素发现并不加载MEDIA_URL,只有learndjango.jpg
解决方法:

setting.py中黄色设置

TEMPLATES = [
    {
        BACKEND: django.template.backends.django.DjangoTemplates,
        DIRS: [os.path.join(BASE_DIR, templates)]
        ,
        APP_DIRS: True,
        OPTIONS: {
            context_processors: [
                django.template.context_processors.debug,
                django.template.context_processors.request,
                django.contrib.auth.context_processors.auth,
                django.contrib.messages.context_processors.messages,
                BookStore.views.global_settings,
                django.template.context_processors.media,

            ],
        },
    },
]

views.py中render_to_response时加

 return render_to_response(index.htm, context_instance=RequestContext(request,locals()))

这样页面审查元素时会有settings.py中设置的media_url


但是还是显示不出图片
解决方法:
url中加这句
    url(r^media/(?P<path>.*)$, django.views.static.serve, {document_root: settings.MEDIA_ROOT})


概括:其实在html中不写{{ MEDIA_URL }}直接写/media/learndjango.jpg,然后加上上面的url就行了,但是media_url变了的话就会改动很多

 


 


 

 

[django]media_url