【发布时间】:2017-07-01 05:35:05
【问题描述】:
我有一个 django 项目。 为了设置我的媒体网址,我关注了 django doc Django doc - Managing static files:
例如,如果您的 MEDIA_URL 被定义为 /media/,您可以通过将以下 sn-p 添加到您的 urls.py 来做到这一点:
从 django.conf 导入设置 从 django.conf.urls.static 导入静态
urlpatterns = [ # ... URLconf 的其余部分在这里... ] + 静态(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我的settings.py:
# ....
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_URL = 'http://127.0.0.1:8000'
# ...
MEDIA_URL_REL = '/media/'
MEDIA_URL = BASE_URL + MEDIA_URL_REL
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
我的 urls.py:
from django.conf import settings
from django.conf.urls import url, include
from django.conf.urls.static import static
urlpatterns = [
# ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我上传的文件在媒体根目录中找到,但是当我访问媒体 url [http://127.0.0.1:8000/media/proof/img.pdf] 时,它返回 HTTP 404 NOT FOUND。
【问题讨论】:
-
你设置
DEBUG = True了吗? -
是的,我有'DEBUG = True'
-
尝试打印 BASE_DIR 并检查 BASE_DIR/media 是否是您的实际媒体目录
-
你为什么使用
BASE_URL? -
@Darshan:我做到了,他们还好