【问题标题】:request media files in django when the debug is false当调试为 false 时在 django 中请求媒体文件
【发布时间】:2022-11-10 23:15:28
【问题描述】:

我试图在其中设置媒体根目录和媒体 URL,但是当调试为假时不返回任何内容

设置.py

...
DEBUG = False

ALLOWED_HOSTS = [
    '127.0.0.1',
    '0.0.0.0',
    ...
]
...
STATIC_URL = 'static/'
STATICFILES_DIRS = [
    BASE_DIR / "static",
]
STATIC_ROOT = BASE_DIR / 'staticfiles'

MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = 'media/'

网址.py

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

我应该怎么做才能在我的项目中返回媒体文件

【问题讨论】:

标签: python django web django-settings django-media


【解决方案1】:

DEBUG=False 时,本地文件将无法访问。您需要尝试任何在线存储静态和媒体文件,例如AWS S3 存储桶等。

指导:

https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html

【讨论】:

  • 谢谢,我找到了我想将我的主机设置为媒体文件夹的存储的答案
【解决方案2】:

我找到了答案

网址.py

...
from django.urls import re_path
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve
...
urlpatterns = [
    ...
    re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
    ...
]
...

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

这个re_path函数可以请求MEDIA_ROOT中的所有文件设置.py

【讨论】:

    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 2019-01-05
    • 2020-11-23
    • 2019-09-14
    • 2020-05-21
    • 2018-06-05
    • 2020-04-12
    • 2018-06-05
    相关资源
    最近更新 更多