私は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)
これがうまくいきたいです。