Saya hanya ingin meletakkan favicon.ico
di staticfiles
direktori saya dan kemudian muncul di aplikasi saya.
Bagaimana saya bisa mencapai ini?
Saya telah meletakkan favicon.ico
file di staticfiles
direktori saya , tetapi tidak muncul dan saya melihatnya di log saya:
127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -
Jika saya pergi ke http://localhost:8000/static/favicon.ico
, saya bisa melihat favicon.
GET /favicon.ico
tidakGET /static/favicon.ico
melihathttp://localhost:8000/static/favicon.ico
tidak terkait. Sepertinya beberapa permintaan browser untuk/favicon.ico
menghina HTML.Jawaban:
Jika Anda memiliki template dasar atau header yang disertakan di mana-mana mengapa tidak menyertakan favicon di sana dengan HTML dasar?
sumber
{{STATIC_URL}}favicon.ico
href="{% static 'favicon.ico' %}
berhasil.image/png
) dan format file (favicon.ico
) tidak cocok.Salah satu trik ringan adalah membuat pengalihan dalam
urls.py
file Anda , misalnya menambahkan tampilan seperti:Ini berfungsi dengan baik sebagai trik mudah untuk membuat favicons berfungsi ketika Anda tidak benar-benar memiliki konten statis lainnya untuk di-host.
sumber
Dalam file template
Kemudian di dalam
<head>
tagIni mengasumsikan bahwa Anda memiliki file statis yang dikonfigurasi dengan tepat di settings.py.
Catatan : versi lama penggunaan Django
load staticfiles
, tidakload static
.sumber
Solusi universal
Anda bisa mendapatkan favicon muncul di Django dengan cara yang sama yang dapat Anda lakukan dalam kerangka kerja lain: cukup gunakan HTML murni.
Tambahkan kode berikut ke header template HTML Anda.
Lebih baik, ke template HTML dasar Anda jika favicon adalah sama di aplikasi Anda.
Kode sebelumnya mengasumsikan:
Anda dapat menemukan informasi yang berguna tentang dukungan format file dan cara menggunakan favicon di artikel Wikipedia ini https://en.wikipedia.org/wiki/Favicon .
Saya dapat merekomendasikan penggunaan
.png
untuk kompatibilitas browser universal.EDIT:
Seperti yang diposting dalam satu komentar,
"Jangan lupa menambahkan
{% load staticfiles %}
di bagian atas file template Anda!"sumber
Di
settings.py
direktori add staticfiles root Anda:Membuat
/static/images/favicon.ico
Tambahkan favicon ke templat Anda (base.html):
Dan buat url redirect di
urls.py
karena browser mencari favicon di/favicon.ico
sumber
Cukup tambahkan itu di file dasar Anda seperti jawaban pertama tetapi ekstensi ico dan tambahkan ke folder statis
sumber
jika Anda memiliki izin
tambahkan alias ke host virtual Anda. (dalam file konfigurasi apache) sama untuk robots.txt
sumber
Solusi terbaik adalah mengganti template Django base.html. Buat templat base.html lain di bawah direktori admin. Buat direktori admin terlebih dahulu jika tidak ada.
app/admin/base.html.
Tambahkan
{% block extrahead %}
ke template utama.sumber
Juga jalankan: python manage.py collectstatic
sumber
Saya mencoba pengaturan berikut di Django 2.1.1
base.html
settings.py
Struktur direktori proyek
lihat langsung di sini
sumber
Cukup salin favicon Anda di: / yourappname / mainapp (mis: inti) / statis / mainapp (mis: inti) / img
Lalu pergi ke templat mainapp Anda (mis: base.html) dan salin saja ini, setelah {% load static%} karena Anda harus memuat dulu statika.
sumber
Praktik terbaik :
Berlawanan dengan apa yang Anda pikirkan, favicon dapat dari berbagai ukuran dan jenis gambar apa pun. Ikuti tautan ini untuk detailnya.
Tidak menempatkan tautan ke favicon Anda dapat memperlambat pemuatan halaman.
Dalam proyek Django, anggaplah jalan menuju favicon Anda adalah:
di templat Django Anda (lebih disukai di templat dasar), tambahkan baris ini ke kepala halaman:
Catatan :
Kami mengira, pengaturan statis dikonfigurasi dengan baik di settings.py.
sumber