图片无法以html格式显示

问题描述 投票:0回答:4

图像无法在html中显示。我在models.py中编写了代码

class POST(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images/', blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True)

在views.py中

def top(request):
    content = POST.objects.order_by('-created_at')[:5]
    return render(request, 'top.html',{'content':content})

在top.html中

<div>
         {% for item in content %}
            <div>
                 <h2>{{ item.title }}</h2>
                 <img src="{{ item.image }}"/>
            </div>
         {% endfor %}
</div>

当我在浏览器中访问时,会显示html.<h2>{{ item.title }}</h2>显示但<img src="{{ item.image }}"/>不存在。当我在GoogleChrome中看到页面源时,会显示<img src="/images/photo.jpg"/>。但是当我点击网址时,发生404错误。我的应用程序有图像/图像文件夹,在图像文件夹中肯定我上传的图片在那里。我真的不明白为什么会这样。我在settings.py中写了MEDIA_ROOT和MEDIA_URL所以我认为图像是在浏览器中显示。我该怎么解决这个问题?

python html django
4个回答
0
投票

确保您的/ images文件夹可以在Django中访问。完成它的一个简单方法是在settings.py中添加“images”文件夹。喜欢:

IMAGE_URL = '/images/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "images"),
    '/images/',
]

然后在您的html文件中,在顶部添加{%load images%}。


0
投票

首先确保在项目网址文件中包含这些行

# Your imports ....
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [.......]

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

并在您的模板中使用

{{ item.image.url }}


-1
投票

使用相对文件夹:

<img src=".{{ item.image }}"/>

导致

<img src="./images/photo.jpg"/>

并检查上传是否有效,图像是否存在。


-1
投票

试试这个:<img src="/image{{ item.image }}"/>

/:表示“根”

。 :表示“当前目录”

因此,如果您的根应用程序具有图像文件夹,则需要使用/ image启动路径

© www.soinside.com 2019 - 2024. All rights reserved.