Ich möchte das nur favicon.ico
in meinem staticfiles
Verzeichnis ablegen und es dann in meiner App anzeigen lassen.
Wie kann ich das erreichen?
Ich habe die favicon.ico
Datei in meinem staticfiles
Verzeichnis abgelegt , aber sie wird nicht angezeigt und ich sehe dies in meinem Protokoll:
127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -
Wenn ich zu gehe http://localhost:8000/static/favicon.ico
, kann ich das Favicon sehen.
GET /favicon.ico
nichtGET /static/favicon.ico
inhttp://localhost:8000/static/favicon.ico
ist nicht verwandt. Es sieht so aus, als ob einige Browser Anfragen nach/favicon.ico
HTML stellen.Antworten:
Wenn Sie eine Basis- oder Header-Vorlage haben, die überall enthalten ist, warum nicht das dortige Favicon mit einfachem HTML einbinden?
quelle
{{STATIC_URL}}favicon.ico
href="{% static 'favicon.ico' %}
jedoch.image/png
) und Dateiformat (favicon.ico
) stimmen nicht überein.Ein einfacher Trick besteht darin, eine Umleitung in Ihre
urls.py
Datei vorzunehmen , z. B. eine Ansicht wie folgt hinzuzufügen:Dies funktioniert gut als einfacher Trick, um Favoriten zum Laufen zu bringen, wenn Sie nicht wirklich andere statische Inhalte zum Hosten haben.
quelle
In der Vorlagendatei
Dann innerhalb des
<head>
TagsDies setzt voraus, dass Sie statische Dateien in settings.py entsprechend konfiguriert haben.
Hinweis : Ältere Versionen von Django verwenden dies
load staticfiles
nichtload static
.quelle
Universelle Lösung
Sie können das Favicon in Django genauso anzeigen lassen wie in jedem anderen Framework: Verwenden Sie einfach reines HTML.
Fügen Sie dem Header Ihrer HTML-Vorlage den folgenden Code hinzu.
Besser zu Ihrer Basis-HTML-Vorlage, wenn das Favicon in Ihrer Anwendung identisch ist.
Der vorherige Code setzt voraus:
In diesem Artikel von Wikipedia https://en.wikipedia.org/wiki/Favicon finden Sie nützliche Informationen zur Unterstützung von Dateiformaten und zur Verwendung von Favoriten . Ich kann die Verwendung aus Gründen der universellen Browserkompatibilität empfehlen .
.png
BEARBEITEN:
Wie in einem Kommentar gepostet :
"Vergessen Sie nicht,
{% load staticfiles %}
oben in Ihre Vorlagendatei einzufügen!"quelle
In Ihrem
settings.py
Add a root Static Verzeichnis:Erstellen
/static/images/favicon.ico
Fügen Sie das Favicon Ihrer Vorlage hinzu (base.html):
Und erstellen Sie eine URL-Umleitung,
urls.py
da Browser nach einem Favicon suchen/favicon.ico
quelle
Fügen Sie das einfach in Ihre Basisdatei ein, wie die erste Antwort, aber die Erweiterung ico, und fügen Sie es dem statischen Ordner hinzu
quelle
Wenn Sie dann die Erlaubnis haben
Fügen Sie Ihrem virtuellen Host einen Alias hinzu. (in der Apache-Konfigurationsdatei) ähnlich für robots.txt
quelle
Die beste Lösung besteht darin, die Vorlage Django base.html zu überschreiben. Erstellen Sie eine weitere base.html-Vorlage im Administratorverzeichnis. Erstellen Sie zuerst ein Administratorverzeichnis, falls es nicht vorhanden ist.
app/admin/base.html.
In
{% block extrahead %}
der übergeordneten Vorlage.quelle
Führen Sie auch Folgendes aus: python manage.py collectstatic
quelle
Ich habe die folgenden Einstellungen in Django 2.1.1 versucht
base.html
settings.py
Projektverzeichnisstruktur
Live hier ansehen
quelle
Kopieren Sie einfach Ihr Favicon auf: / yourappname / mainapp (ex: core) / static / mainapp (ex: core) / img
Gehen Sie dann zu Ihrer Hauptanwendungsvorlage (z. B. base.html) und kopieren Sie diese nach {% load static%}, da Sie zuerst die Statik laden müssen.
quelle
Empfohlene Vorgehensweise :
Im Gegensatz zu Ihrer Meinung kann das Favicon jede Größe und jeden Bildtyp haben. Folgen Sie diesem Link für Details.
Wenn Sie keinen Link zu Ihrem Favicon setzen, kann dies das Laden der Seite verlangsamen.
Angenommen, in einem Django-Projekt lautet der Pfad zu Ihrem Favicon:
Fügen Sie in Ihren Django-Vorlagen (vorzugsweise in der Basisvorlage) diese Zeile zum Kopf der Seite hinzu:
Hinweis :
Wir nehmen an, dass die statischen Einstellungen in settings.py gut konfiguriert sind.
quelle