web-dev-qa-db-fra.com

Django modèle img src ne fonctionne pas

Je veux imprimer une image en utilisant une balise img src dans un fichier de modèle Django "base.html":

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

Dans views.py, je définis:

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

Mais l'image n'apparaît pas dans le navigateur. Si je l'ouvre comme un simple fichier html, il apparaît dans le navigateur.

16
user1680859

Cela se produit car Django ne connaît pas le chemin d'accès à cette image.
Créez un dossier nommé static/, puis un dossier nommé images/ dans la racine de votre projet (où réside votre fichier settings.py).

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

Et puis changez-le en:

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

Plus ici .

10
thikonom

Dans les versions récentes de Django

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

17
chandan

Vous devez ajouter une balise statique de charge au début de votre modèle Django, bonne chance avec le code ci-dessous.

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