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)
尽管图片在那里:
我做错了什么?提前致谢
编辑
如果它可以帮助:
- 我正在使用 django 1.8
确保您已将此行添加到您的 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/
可用
这是我的项目结构:
我需要先上传图片(通过管理界面),然后再将其加载到模板中。
我发现了很多关于相同问题的帖子,并且我按照答案中描述的相同步骤进行操作:
我的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)
尽管图片在那里:
我做错了什么?提前致谢
编辑 如果它可以帮助:
- 我正在使用 django 1.8
确保您已将此行添加到您的 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/
可用