/ / Django MediaのURLが404 NOT FOUNDを返す - python、django、media-url

Django Media urlは404を見つけません - python、django、media-url

私はdjangoプロジェクトを持っています。 私のメディアURLを設定するために、私はdjangoのドキュメントに従いました Django doc - 静的ファイルの管理

たとえば、MEDIA_URLが/ media /として定義されている場合は、urls.pyに次のコードを追加することでこれを実行できます。

django.confからのインポート設定 django.conf.urls.staticインポートstaticから

urlpatterns = [ #...残りのURLconfはここにあります... ] + 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が見つかりません.

回答:

回答№1は6

ハードコーディングされたURLを作成しないでください。これは悪い習慣以上のものです。

BASE_URL = "http://127.0.0.1:8000"

あなたはそのように書くことはできません。

あなたの解決策

settings.py

MEDIA_URL = "/media/"

urls.py

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

これがうまくいきたいです。