IT

django 앱에 파비콘을 표시해야합니까?

lottoking 2020. 7. 11. 09:21
반응형

django 앱에 파비콘을 표시해야합니까?


favicon.icostaticfiles디렉토리 에을 놓은 다음 내 앱에 표시하고 싶습니다.

어떻게하면?

favicon.ico파일을 staticfiles디렉토리 넣었 지만 표시되지 않는데 내 로그에 표시됩니다.

127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -

에 가면 http://localhost:8000/static/favicon.ico파비콘을 볼 수 있습니다.


어디에나 포함 된 기본 또는 헤더 템플릿이있는 기본 HTML과 함께 즐겨 찾기 아이콘을 포함하고 기본 또는 헤더 템플릿이 있습니까?

<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>

간단한 트릭은 urls.py파일 에서 경로를 재지 정하는 것입니다 . 예를 들어 다음과 같이 뷰를 추가하십시오.

from django.views.generic.base import RedirectView

favicon_view = RedirectView.as_view(url='/static/favicon.ico', permanent=True)

urlpatterns = [
    ...
    re_path(r'^favicon\.ico$', favicon_view),
    ...
]

이 호스트 할 다른 정적 컨텐츠가 없을 때 즐겨 찾기 아이콘이 작동하는 쉬운 방법입니다.


템플릿 파일에서

{% load static %}

그런 다음 <head>태그

<link rel="shortcut icon" href="{%  static 'favicon.ico' %}">

settings.py에 정적 파일이 고유하게 구성되어있어 가정합니다.


참고 : 이전 버전의 장고 사용하지는 load staticfiles않습니다 load static.


범용 솔루션

Django에서 다른 프레임 워크에서와 같은 방식으로 즐겨 찾기 아이콘을 표시 할 수 있습니다. 순수한 HTML 만 사용하십시오.

HTML 템플릿의 헤더에 다음 코드를 추가하십시오.
favicon이 응용 프로그램에서 동일하면 기본 HTML 템플릿에 더 좋습니다.

<link rel="shortcut icon" href="{% static 'favicon/favicon.png' %}"/>

이전 코드는 다음을 가정합니다.

  1. 정적 폴더에 'favicon'이라는 폴더가 있습니다.
  2. 파비콘 파일의 이름은 'favicon.png'입니다.
  3. 설정 변수 STATIC_URL을 선택 설정했습니다

Wikipedia https://ko.wikipedia.org/wiki/Favicon 가이드 에서 파일 형식 지원 및 즐겨 찾기 아이콘 사용 방법에 대한 유용한 정보를 사용할 수 있습니다 . 호환성을 범용 브라우저 위해 사용 하는 것이 좋습니다 .
.png

편집 :
한 의견에 게시 된
" {% load staticfiles %}템플릿 파일 맨 위에 추가하는 것을 잊지 마세요 !"


<link rel="shortcut icon" href="{% static 'favicon/favicon.ico' %}"/>

첫 번째 답변과 같은 기본 파일에 ico 가입을 추가하고 정적 폴더에 추가하십시오.


당신이 권한이있는 권한

Alias /favicon.ico /var/www/aktel/workspace1/PyBot/PyBot/static/favicon.ico

가상 호스트에 추가 할 기능. robots.txt와 유사하게 (아파치 구성 파일에서)

Alias /robots.txt /var/www/---your path ---/PyBot/robots.txt

가장 좋은 해결책은 Django base.html 템플릿을 재정의하는 것입니다. 관리 디렉토리에 다른 base.html 정렬을 작성하십시오. 관리하십시오.app/admin/base.html.

{% block extrahead %}재정의 템플릿에 추가 합니다.

{% extends 'admin/base.html' %}
{% load staticfiles %}
{% block javascripts %}
    {{ block.super }}
<script type="text/javascript" src="{% static 'app/js/action.js' %}"></script>

{% endblock %}

{% block extrahead %}
    <link rel="shortcut icon" href="{% static 'app/img/favicon.ico'  %}" />
{% endblock %}
{% block stylesheets %}

    {{ block.super }}
{% endblock %}

django 2.1.1에서 다음 설정을 시도했습니다.

base.html

<head>
  {% load static %}
  <link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>
</head>

settings.py

 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 STATIC_URL = '/static/'` <br>`.............

프로젝트 디렉토리 구조

영상

여기서 라이브보기


settings.py루트 정적 파일 디렉토리를 추가 하십시오 .

   STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
        ]

창조하다 /static/images/favicon.ico

템플릿 (base.html)에 파비콘을 추가합니다.

{% load static %}
<link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>

urls.py브라우저가에서 파비콘을 찾기 때문에 에서 URL 리디렉션을 만듭니다./favicon.ico

from django.contrib.staticfiles.storage import staticfiles_storage
from django.views.generic.base import RedirectView

urlpatterns = [
    ...
    path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('images/favicon.ico')))
]

모범 사례 :

당신이 생각하는 것과는 달리, 파비콘은 어떤 크기와 어떤 이미지 유형도 될 수 있습니다. 자세한 내용은이 링크를 살펴보십시오.

파비콘에 링크를 넣지 언어 페이지로드 속도가 느려질 수 있습니다.

django 프로젝트에서 favicon의 경로가 다음과 같다고 가정합니다.

myapp/static/icons/favicon.png

django 템플릿 (가급적이면 기본 템플릿)에서 다음 줄을 페이지 헤드에 추가합니다.

<link rel="shortcut icon" href="{%  static 'icons/favicon.png' %}">

노트 :

정적 설정이 settings.py에 잘 구성되어있어 가정합니다.


파비콘을 다음 위치에 복사하십시오 : / yourappname / mainapp (ex : core) / static / mainapp (ex : core) / img

그런 다음 mainapp 템플릿 (예 : base.html)으로 이동하여 {% load static %} 후에 복사하십시오 . 먼저 정적을로드해야하기 때문입니다.

<link href="{% static 'core/img/favi_x.png' %}" rel="shortcut icon" type="image/png" />

참고 URL : https://stackoverflow.com/questions/21938028/how-can-i-get-a-favicon-to-show-up-in-my-django-app

반응형