1

Django インストールに django-avatar をインストールしようとしています。私の人生で理解できないのは、 MEDIA_ROOT および MEDIA_URL パスのどこが間違っているかです。

アバターは現在、ローカルの正しい場所にアップロードされています: <* project *>/media/avatars/...

ただし、/avatars/change/を押すと、画像はローカルの絶対パスを使用して提供されています。

/Users/<* ユーザー名>/< project_path *>/media/avatars/....jpg

私のsettings.pyには、次の変数が設定されています。

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'
AVATAR_STORAGE_DIR = MEDIA_ROOT + '/avatars/'

そして、私の urls.py には次のものがあります。

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
        }),
    )

問題は、プロジェクトの設定ではなく、アプリケーション レベルにあるに違いないと思います。誰かがそれを助けることができれば、それは素晴らしいことです!

4

1 に答える 1

1

私の経験から、これは開発サーバーを使用する場合の標準的な動作です。Django 開発サーバーは静的ファイルを提供しており、MEDIA_ROOT (完全なローカル パス) から提供しています。

展開するときは、静的ファイルを Web サーバーで提供する必要があり、URL には予想される MEDIA_URL が反映されます。

静的ファイルの管理に関する Django のドキュメントを読む価値があるかもしれません。

于 2012-11-04T16:16:24.857 に答える