0

静的およびメディア設定に問題があるため、アップロードした画像がサイト ページに表示されません。

私の「settings.py」には次のものがあります。

MEDIA_ROOT = (
    os.path.join(BASE_DIR, '..', 'static', 'media')
)
MEDIA_URL = '/media/'

STATIC_ROOT = (
    os.path.join(BASE_DIR, '..', 'static'),
)
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, '..', 'static'),
)

私の「models.py」には次のものがあります。

expert_photo = models.ImageField(upload_to='profiles')

いくつかの「urls.py」:

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),

    (r'^tinymce/', include('tinymce.urls')),

    url(r'^experts/all/$', 'expert.views.experts', name='experts'),
    url(r'^experts/get/(?P<expert_id>\d+)/$', 'expert.views.expert', name='expert'),

)

その後、自分のページに移動すると、写真に次のようなリンクがあることがわかります。

http://127.0.0.1:8000/static/profiles/i_vagin.jpg

ただし、次のようにする必要があります。

http://127.0.0.1:8000/static/media/profiles/i_vagin.jpg

それで、どうすればそれを修正できますか?

4

1 に答える 1

2

デフォルトでは、メディア ファイルは開発中に提供されません。urls.pyメディア ファイルの配信を有効にするには、ファイルに次のコードを追加する必要があります。

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)

ソース: Django ドキュメント

アップデート

次のように、テンプレート内の画像にもアクセスする必要があります。{{ expert_photo.url }}

于 2015-04-16T08:48:20.943 に答える