Django - 为什么不提供图片

Django - Why pictures are not served

这是我的项目结构:

我需要先上传图片(通过管理界面),然后再将其加载到模板中。

我发现了很多关于相同问题的帖子,并且我按照答案中描述的相同步骤进行操作:

我的settings.py:

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

我的urls.py:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的models.py:

class Image_blog(models.Model):
    pic = models.ImageField(upload_to = 'blog')
    entry = models.ForeignKey(Entry,related_name='images')
    ...

最后,在模板中:

                    <div class="col-md-5">
                        <a href="blog-post.html">
                        {% for img in entry.images.all %}
                            <img class="img-responsive img-hover" src="{{ img.pic.url }}" alt="">
                        {% endfor %}
                        </a>
                    </div>

我遇到这个错误的问题:

 GET http://localhost:8000/media/blog/django.png 404 (NOT FOUND)

尽管图片在那里:

我做错了什么?提前致谢

编辑 如果它可以帮助:

确保您已将此行添加到您的 root url 配置中。

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

如果你有,例如,

url(r'^blog/', include('blog.urls')),

并在那里添加 static(),然后 Django 会添加一个 url 模式来为 /blog/^media/ 处的媒体文件提供服务。由于 ^.

,这甚至不会使文件在 /blog/media/ 可用