MEDIA_URL および MEDIA_ROOT を使用した Django メディア ファイル提供のトラブルシューティング
Django 管理インターフェイス経由で画像をアップロードし、URL 経由でアクセスしようとした場合フロントエンドでは、設定が適切に構成されていない場合、イライラする 404 エラーが発生する可能性があります。
MEDIA_ROOT および MEDIA_URL の設定
アップロードされたメディア ファイルを保存するために、Django は次を使用します。 2 つの設定: ファイルが保存される物理ディレクトリへのパスを指定する MEDIA_ROOT、および Web 上のファイルにアクセスするために使用される URL プレフィックスである MEDIA_URL。
あなたの場合、 MEDIA_ROOT を /home/dan/mysite/media/ に設定し、MEDIA_URL を /media/ に設定すると、すべてが正しく設定されているように見えるかもしれません。ただし、これらのファイルを提供するように URL パターンを設定するまでは、アップロードされたファイルにアクセスすることはできません。
開発中の静的ファイルの提供
を使用してローカルで開発する場合Django では、画像などの静的ファイルを提供することが不可欠です。ただし、運用環境では、通常、静的ファイルの提供を処理するように Web サーバー (Apache や Nginx など) を構成する必要があります。
開発用に、Django は使用できる django.views.static.serve 関数を提供します。指定されたディレクトリからファイルを提供します。これを Django プロジェクトに統合するには、次の手順に従います:
設定を更新します:
from django.conf import settings if settings.DEBUG: # static files (images, css, javascript, etc.) urlpatterns += patterns('', (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': settings.MEDIA_ROOT}))
これにより、DEBUG が True の場合 (通常はローカル開発中の場合)、Django は MEDIA_ROOT ディレクトリから静的ファイルを提供します。
画像へのアクセス
URL パターンが正しく設定されていると、URL プレフィックス MEDIA_URL に続いてファイルへのパスを使用して、アップロードされた画像にアクセスできるようになります。あなたの場合、http://127.0.0.1:8000/media/images/myimage.png で画像にアクセスします。
以上がMEDIA_ROOT と MEDIA_URL が設定されているにもかかわらず、アップロードした Django メディア ファイルにアクセスしようとすると 404 エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。