Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
394 views
in Technique[技术] by (71.8m points)

Django 中MEDIA_URL、MEDIA_ROOT 等都设置正确,输入正确的URL 图片不显示?

问题描述

Django 中MEDIA_URL、MEDIA_ROOT 等都设置正确,输入正确的URL 图片不显示?

相关代码配置

# settings 配置
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',
                'django.template.context_processors.media',
            ],
        },
    },
]

MEDIA_ROOT = os.path.join(BASE_DIR,'media').replace('\','/')
MEDIA_URL = '/media/'
# urls 配置
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve

urlpatterns = [
    url(r'admin/', admin.site.urls),
    url(r'^admin.*$', views.admin),

    url(r'^.*$', TemplateView.as_view(template_name="index.html")),
    re_path(r'^media/(?P<path>.*)$',serve,{'document_root':settings.MEDIA_ROOT}),

] + static(settings.MEDIA_URL,document_root= settings.MEDIA_ROOT)

结果

返回的url 为 http://127.0.0.1:8000/media/userpro/zj.png,但是图片不显示

尝试将

url(r'^.*$', TemplateView.as_view(template_name="index.html")),

注释掉都,图片正常显示了,这是什么原因啊???

已经找到问题所在,并解决

Django 的url解析顺序为urlpatterns的由上至下的顺序

url(r'^.*$', TemplateView.as_view(template_name="index.html")),

写在前面,会把路由

re_path(r'^media/(?P<path>.*)$',serve,{'document_root':settings.MEDIA_ROOT},name='media'),

屏蔽掉,致使图片无法显示


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.7k users

...