0

如果我把我的图像放在/media/文件夹中,它就不起作用。但是,如果我将它们放在“/static/”文件夹中,它就可以工作。

{% extends 'base.html' %}

{% block contain %}
    <h1>New Report</h1>
    <form id="create" method="POST" action="" enctype="multipart/form-data">{% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Confirm">
    </form>


    {% for report in reports %}
        <P> {{report.title}} </P> <br>
        <img src="{{STATIC_URL}}<name of the image>" width='100px' height='100px'> =====> I can see the image

        <img src="{{MEDIA_URL}} <name of the image>" width='100px' height='100px'> =====> I cant see the image

        <img src="/static/<name of the image>" width='100px' height='100px'> =====> I cant see the image

        <img src="/media/<name of the image>" width='100px' height='100px'> ====>>>> I cant see the image


    {% endfor %}
{% endblock %}
4

2 回答 2

6

您确定 django 测试服务器(或 apache/nginx)知道您的媒体文件夹吗?

尝试将其添加到 urls.py (如果您使用的是开发服务器):

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
   )
于 2013-07-04T04:25:42.293 回答
0

将图像放在您的静态文件夹中将起作用,因为静态文件夹中的文件在站点上提供。这是一个潜在的解决方案,这个讨论似乎表明它对于某些图像是合理的。在我的网站上,媒体文件夹中的图像位于/uploads/<name of the image>. 这是MEDIA_URL设置的。但是我从不明确调用MEDIA_URL,因为我所有的图像都绑定到模型中,所以 django 会为我处理。我的猜测是仔细检查您存储图像的文件夹的名称,并确保您正在查看正确的位置。其次,我会确保模板{{MEDIA_URL}}中没有未定义

于 2013-07-04T04:25:26.437 回答