Django Media Directory HTTP 404(用于上传的图片)

时间:2019-02-10 18:55:15

标签: django django-staticfiles django-media django-uploads

我的项目结构是:

- api/
    - urls.py
    ...
- avatars/
    - 16701016.jpg
    - 16701019.jpg
    ...
- frontend/
    - static/
        - frontend/
    - templates/
    - urls.py
    ...
- website/
    - settings.py
    - urls.py
    ...

settings.py文件的一部分:

STATIC_URL = '/static/'
MEDIA_ROOT = os.path.abspath('../avatars/')
MEDIA_URL = '/avatars/'

/website/urls.py的内容:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls')),
    re_path(r'^.*', include('frontend.urls'))
]

现在,我需要通过/avatars/*.jpg之类的URL访问http://127.0.0.1:8000/avatars/*.jpg文件

但是它不起作用(只是404)。有什么问题吗?

1 个答案:

答案 0 :(得分:2)

  1. 从以下位置更改MEDIA_ROOT值:

    MEDIA_ROOT = os.path.abspath('../avatars/')  
    

    至:

    MEDIA_ROOT = os.path.abspath('avatars')
    
  2. 并在urls.py中附加以下代码:

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