python - Django Media url 返回 404 NOT FOUND

标签 python django media-url

我有一个 Django 项目。 为了设置我的媒体 url,我遵循了 django 文档 Django doc - Managing static files :

For example, if your MEDIA_URL is defined as /media/, you can do this by adding the following snippet to your urls.py:

from django.conf import settings from django.conf.urls.static import static

urlpatterns = [ # ... the rest of your URLconf goes here ... ] + static(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

最佳答案

请不要硬编码任何网址。这不仅仅是不好的做法。

BASE_URL = 'http://127.0.0.1:8000'

你不能那样写。

您的解决方案,

设置.py

MEDIA_URL = '/media/'

网址.py

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

希望这能奏效。

关于python - Django Media url 返回 404 NOT FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42200568/

相关文章:

python - 将类实例方法传递给 Python 中的另一个函数 (2.7)

python - 将字符串/列表转换为数据框

django - 你如何在 Memcached、Redis 和 Varnish 之间做出选择?

python - 点集之间的成对位移向量

python - 以与 gunzip 一样快的速度获取 gzip 压缩文件大小(无搜索)

python - Django 从表单上传文件无法验证

python - 用于具有多个应用程序的现有 Django 项目的 herokusyncdb

django: ImageField, MEDIA_ROOT, MEDIA_URL, 如何正确设置

python - Django:MEDIA_URL 返回找不到页面