[解決済み】Django MEDIA_URL と MEDIA_ROOT
2022-04-15 08:06:04
質問
Django の管理画面から画像をアップロードし、その画像をフロントエンドのページか URL 経由で表示しようとしています。
これはすべて私のローカルマシン上で行われていることに注意してください。
私の設定は以下の通りです。
MEDIA_ROOT = '/home/dan/mysite/media/'
MEDIA_URL = '/media/'
upload_to パラメータを 'images' に設定したところ、ファイルがディレクトリに正しくアップロードされました。
'/home/dan/mysite/media/images/myimage.png'
しかし、以下のURLで画像にアクセスしようとすると。
http://127.0.0.1:8000/media/images/myimage.png
404エラーが発生します。
アップロードされたメディアに対して、特定のURLconfパターンを設定する必要があるのでしょうか?
何かアドバイスがあればお願いします。
ありがとうございます。
解決方法は?
Django >=1.7用のUPDATEです。
Django 2.1 のドキュメントによる。 開発中にユーザがアップロードしたファイルを提供する
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
はもう必要ありません。
if settings.DEBUG
Django はこれが Debug モードでだけ使われるように処理するからです。
Django <= 1.6に対するORIGINALアンサー
これを urls.py
from django.conf import settings
# ... your normal urlpatterns here
if settings.DEBUG:
# static files (images, css, javascript, etc.)
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT}))
これを使うと、Django から静的メディアを提供する際に
DEBUG = True
(ローカルコンピュータで実行する場合) しかし、本番環境ではWebサーバの設定に静的メディアを提供させることができます。
DEBUG = False
関連
-
[解決済み] ImportError: 'django.utils' から名前 'six' をインポートできません。
-
[解決済み] Django は RuntimeError で動作を停止します: populate() は reentrant ではありません。
-
[解決済み] 2つのフィールド「unique」をカップルとして定義する方法
-
django.core.exceptions.ImproperlyConfigured: MySQLdb モジュールの読み込みに失敗しました。
-
Pythonが表示される。TypeError: 期待される文字列またはバッファ
-
AttributeError: 'NoneType' オブジェクトに 'split' 属性がない場合の解決策(djangoにて
-
Django REST Framework の post_create を使用する際のエラー django.db.utils.IntegrityError.Django.db.utils.IntegrityError.Django.db.utils.IntegrityError: UNIQUE 制約に失敗しました。
-
[解決済み] Django - テンプレートのforループで番号を反復する
-
[解決済み】Django Southでの後方移行について
-
[解決済み】Django TemplateDoesNotExist?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DjangoのQuerySetをリストに変換する方法とは?
-
[解決済み] django Forms のラジオボタン
-
[解決済み] django 1.7 migrate で "table already exists" というエラーが発生する。
-
[解決済み] Django 引数 '()' とキーワード引数 '{}' を持つリバースが見つかりません。
-
django.db.utils.OperationalError の解決策です。(2003, "Can't connect to MySQL server") というエラーが発生します。
-
djangoにおけるrelated_nameの役割
-
[解決済み] request.FILESからファイル名を取得するにはどうすればよいですか?
-
[解決済み】DEBUG=Falseを設定すると、なぜdjangoの静的ファイルアクセスに失敗するのですか?
-
[解決済み] djangoのテンプレートで文字列を連結する方法は?
-
[解決済み】djangoのフォームフィールドでデフォルトで空のクエリセットを作成する