ユーザーがアップロードした画像をWebページに表示しようとしています。 Django管理インターフェース(ファイルフィールドを持つギャラリー画像のモデルを作った)を使って画像ファイルをアップロードすると、画像は/ media/imagesに正しく保存されます。メディアファイルがDjangoに表示されない
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
プロジェクトurls.py:
from django.conf.urls import include, url
from django.contrib import admin
import gallery.views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('gallery.urls')),
]+ static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
ギャラリーurls.py:
from django.conf.urls import url
from django.conf import settings
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r'^', views.homepage, name = 'home'),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
ギャラリーviews.py:
私は次のようにsettings.pyに設定された私のメディア設定を持っていますdef homepage(request):
texts = Sitetext.objects.all()
gal = Galleryimg.objects.all()
gal.order_by('position')
return render(request,'index.html', {"text1":texts[0].text,"text2":texts[1].text,"text3":texts[2].text,"text4":texts[3].text,"title1":texts[0].title,"title2":texts[1].title,"title3":texts[2].title,"title4":texts[3].title,"gallery":gal})
そして、これはthの一部です画像にアクセスするテンプレートコード:
{% for g in gallery %}
<div class="col-md-3 col-sm-4 col-xs-6">
<img class="img-responsive" src="g.imgfile.url" />
</div>
{% endfor %}
ギャラリー画像を作成すると、壊れた画像がポップアップしますが、画像に正しくアクセスできません。
私は1.と2.の両方を行い、ファイルはまだ表示されません。 [3]:from gallery.models import Galleryimg In [4]:Galleryimg.objects.all() Out [4]:]は、 ] [ [5]:Galleryimg.objects.all()[0] Out [5]: In [6]:Galleryimg.objects.all()[0] .imgfile Out [6]: In [7]:Galleryimg.objects.all()[0] .imgfile.url Out [7]: '/ media/images/20150223_083553。 jpg ' –
URLに「127.0.0.1:8000/media/images/20150223_083553」とヒットした場合は、jpg'、あなたは404を手に入れますか? 'urls.py'ファイルの中でこれを' django.views.static import serve'から一番上に置き、 'static(settings.MEDIA_URL ...)'を削除し、 'urlpatterns + = [url( r '^ media /(?P。*)'、serve、{'document_root':settings.MEDIA_ROOT})] '。 –
いいえ、画像がきれいに読み込まれます。 –