2012-09-18 63 views
8

我想在Django模板文件 “base.html文件” 使用IMG SRC标签打印图像:Django的模板IMG SRC不工作

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html lang="en"> 
<head> 
    <title>Foto</title> 
</head> 
<body> 
    <h1>My helpful timestamp site</h1> 
    <img src="google.png"/> 
    <hr> 
    <p>Made by ... </p> 
</body> 
</html> 

在views.py我定义:

def hello(request): 
    return render_to_response('base.html') 

但是图像没有显示在浏览器中。如果我打开它作为一个简单的html文件,它会显示在浏览器中。

回答

6

发生这种情况是因为Django不知道此映像的路径。
制作一个名为static/的文件夹,然后在项目根目录(您的settings.py文件所在的位置)放置一个名为images/的文件夹。

my_project/ 
    my_project/ 
     settings.py 
     static/ 
      images/ 
      google.png 

然后将其更改为:

<img src="{{STATIC_URL}}images/google.png"/> 

更多here

+0

由于我只有一个图像,我不想使用静态文件。我从https://docs.djangoproject.com/en/1.0/ref/templates/builtins/中看到了这个例子: user1680859

+0

这只是一个例子。常见的路线是我在答案中描述的路线。 – thikonom

11

的Django的版本

<img src="{% static 'path/to/image.ext' %}"/>

+3

'{%load static%}' '' 为我工作,谢谢! – WEshruth

+1

这节省了我的培根!谢谢! – user2788749

+0

@WEshruth你应该考虑发表你的评论作为答案。它明确地回答了这个问题。 – Anomitra

2

你得加负载静态标签在你的Django模板,好运的开始与下面的代码。

{% load static %} 
<img src="{% static 'path/to/image.ext' %}"/> 
-1

在最新版本的Django的,我们已经把关闭所有的复杂性:

(不要忘记你需要把一切都在静态文件夹本身)

所以在你的模板:

{% load static %} <img src="{% static 'path_to_save/google.png' %}"/>

+0

它与下面的答案有何不同(@Weshruth的答案) – chandan