Eu só quero soltar o favicon.ico
no meu staticfiles
diretório e depois aparecer no meu aplicativo.
Como posso fazer isso?
Coloquei o favicon.ico
arquivo no meu staticfiles
diretório, mas ele não aparece e vejo isso no meu log:
127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -
Se eu for http://localhost:8000/static/favicon.ico
, posso ver o favicon.
GET /favicon.ico
não estáGET /static/favicon.ico
olhandohttp://localhost:8000/static/favicon.ico
não está relacionado. Parece que alguns pedidos de navegadores/favicon.ico
desprezam o HTML.Respostas:
Se você tem um modelo de base ou cabeçalho incluído em todos os lugares, por que não incluir o favicon no HTML básico?
fonte
{{STATIC_URL}}favicon.ico
href="{% static 'favicon.ico' %}
.image/png
) e o formato do arquivo (favicon.ico
) não correspondem.Um truque leve é fazer um redirecionamento no seu
urls.py
arquivo, por exemplo, adicione uma visualização da seguinte forma:Isso funciona bem como um truque fácil para fazer com que os favoritos funcionem quando você realmente não tem outro conteúdo estático para hospedar.
fonte
No arquivo de modelo
Em seguida, dentro da
<head>
tagIsso pressupõe que você tenha arquivos estáticos configurados adequadamente em settings.py.
Nota : versões mais antigas do Django usam
load staticfiles
, nãoload static
.fonte
Solução universal
Você pode obter o favicon aparecendo no Django da mesma maneira que em qualquer outra estrutura: basta usar HTML puro.
Adicione o seguinte código ao cabeçalho do seu modelo HTML.
Melhor, para o seu modelo HTML básico, se o favicon for o mesmo em seu aplicativo.
O código anterior assume:
Você pode encontrar informações úteis sobre o suporte ao formato de arquivo e como usar os favoritos neste artigo da Wikipedia https://en.wikipedia.org/wiki/Favicon .
Posso recomendar o uso
.png
para compatibilidade universal com navegadores.EDIT:
Como publicado em um comentário,
"Não se esqueça de adicionar
{% load staticfiles %}
no topo do seu arquivo de modelo!"fonte
No seu
settings.py
diretório add staticfiles raiz:Crio
/static/images/favicon.ico
Adicione o favicon ao seu modelo (base.html):
E crie um redirecionamento de URL
urls.py
porque os navegadores procuram um favicon em/favicon.ico
fonte
Basta adicionar isso no seu arquivo base, como a primeira resposta, mas a extensão ico, e adicioná-lo à pasta estática
fonte
se você tiver permissão então
adicione o alias ao seu host virtual. (no arquivo de configuração do apache) da mesma forma para o robots.txt
fonte
A melhor solução é substituir o modelo Django base.html. Crie outro modelo base.html no diretório admin. Crie um diretório admin primeiro se ele não existir.
app/admin/base.html.
Adicione
{% block extrahead %}
ao modelo de substituição.fonte
Execute também: python manage.py collectstatic
fonte
Eu tentei as seguintes configurações no django 2.1.1
base.html
settings.py
Estrutura de diretório do projeto
ver ao vivo aqui
fonte
Basta copiar seu favicon em: / yourappname / mainapp (ex: core) / static / mainapp (ex: core) / img
Em seguida, vá para o modelo do seu mainapp (ex: base.html) e copie isso depois de {% load static%}, porque você deve carregar primeiro as estatísticas.
fonte
Melhores Práticas :
Ao contrário do que você pensa, o favicon pode ser de qualquer tamanho e tipo de imagem. Siga este link para obter detalhes.
Não colocar um link para seu favicon pode atrasar o carregamento da página.
Em um projeto django, suponha que o caminho para seu favicon seja:
nos seus modelos de django (de preferência no modelo base), adicione esta linha ao cabeçalho da página:
Nota :
Supomos que as configurações estáticas estão bem definidas em settings.py.
fonte