2012-09-18 17 views
8

Quiero imprimir una imagen mediante el uso de una etiqueta img src en un archivo de plantilla de Django "base.html":Django plantilla img src no trabajar

<!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> 

En views.py defino:

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

Pero la imagen no aparece en el navegador. Si lo abro como un simple archivo html, aparece en el navegador.

Respuesta

6

Eso sucede porque Django no conoce el camino a esta imagen.
Cree una carpeta con el nombre static/, y luego una carpeta con el nombre images/ en la raíz del proyecto (donde reside su archivo settings.py).

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

y luego cambia a:

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

Más here.

+0

Como tengo solo una imagen, no quería utilizar archivos estáticos. Vi desde https://docs.djangoproject.com/en/1.0/ref/templates/builtins/ el ejemplo: user1680859

+0

Esto es solo un ejemplo. El camino común a seguir es el que describí en mi respuesta. – thikonom

11

En las últimas versiones de Django

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

+3

'{% load static%}' '' ¡Trabajó para mí, gracias muchísimo! – WEshruth

+1

¡Esto salvó mi tocino! ¡Gracias! – user2788749

+0

@WEshruth Deberías considerar publicar tu comentario como respuesta. Responde la pregunta definitivamente. – Anomitra

2

usted tiene que añadir la etiqueta de carga estática en el inicio de su Django plantilla, mejor suerte con el código de abajo.

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

En la versión más reciente de Django Nos hemos despojado de todas las dificultades:

(No olvide que usted necesita para mantener todo en carpeta estático en sí)

Así que en su plantilla:

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

+0

¿cómo es diferente de la respuesta a continuación (@ respuesta WEshruth) – chandan