我不能用html显示图像

时间:2018-03-09 18:40:29

标签: python html

我是python和django的新手。 我的代码如下,问题是图像没有出现。 我在teste.html中包含了这个标签,但它没有用到src =“./ assets / images / 3ed274bc061c771ef0b153111a6fe932_logocartorio.png”

我的路径是:

BCcartorio 
   bccartorio
      settings
      urls
   iddigital
      views
      urls
   templates      
      iddigital
         teste.html
         assets
            css
            images
            js

我的iddigital.views.py:

from django.shortcuts import render, HttpResponse
def home(request):
     return (render(request, "iddigital/teste.html"))

我的teste.html:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>teste</title>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

</head>
<body>
    <h1>Welcome</h1>
    <button class="btn btn-danger" type="button" name="button">login</button>

    <div class="bd-vertical-align-wrapper">
        <img class="bd-imagelink-1 bd-own-margins bd-imagestyles   "  src="./assets/images/3ed274bc061c771ef0b153111a6fe932_logocartorio.png">
    </div>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

对图像的URL进行硬编码并不是一个好习惯,因为这会导致许多意外问题(例如路径混淆)。为了避免这种情况,Django提供了一种轻松管理和提供静态文件的无障碍方法。

首先,您必须在django.contrib.staticfiles中添加INSTALLED_APPS个应用,然后在settings文件中定义STATIC_URL作为基本路径的Django static用于在模板中查找静态文件。最好有一个单独的assets文件夹,其中包含css文件夹,其中包含jsimagesassets等子文件夹。

因此,我从该路径中取出static文件夹并将其移至iddigital文件夹中,该文件夹与templatesSTATIC_URL处于同一级别那些。在这种情况下,您的'/static/变量将等于teste.html

现在,在{% load static %}模板中,您可以通过在文件顶部添加<img src="{% static "assets/images/logocartorio.png" %}" class="bd-imagelink-1 bd-own-margins bd-imagestyles"/>来加载静态文件夹。现在可以像下面这样简单地调用您的图像:Django

有关上述内容的更多信息,请参阅优秀的keytool documentation