Как получить мой favicon по адресу `example.com/favicon.ico` в моем проекте Django?

Google в настоящее время не показывает favicon моего сайта в результатах поиска, и я узнал, что это потому, что он должен быть расположен по адресу example.com/favicon.ico. Я ищу простой способ сделать это, надеюсь, не полагаясь на перенаправления. Я использовал перенаправление на версию в моей статической папке, но когда я посещаю url, он перенаправляет на example.com/static/favicon.ico, чего я не хочу. Я хочу, чтобы при посещении пользователем или гусеницей адреса example.com/favicon.ico они видели мой фавикон. В настоящее время он расположен по адресу:

my_project/
├── my_project/
│   ├── ...
│   ├── settings.py
│   ├── ...
├── manage.py
└── static/
    └── img/
        └── favicon.ico

В качестве веб-сервера я использую gunicorn, а в качестве http-сервера - whitenoise. Вот мой urls.py:

from django.urls import path, include  # new

from django.contrib.sitemaps.views import sitemap  # new

from finder.views import ProcessorDetailSitemap, ArticleDetailSitemap, StaticViewSitemap  # Correct import path


#from django.conf import settings

#from django.conf.urls.static import static


sitemaps = {

    'processor':ProcessorDetailSitemap,

    'article': ArticleDetailSitemap,

    'static': StaticViewSitemap,

}


urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('finder.urls')), #new

    path("sitemap.xml", sitemap, {"sitemaps": sitemaps}, name="django.contrib.sitemaps.views.sitemap",),

] 

Он также связан в моем шаблоне с помощью <link rel="icon" type="image/x-icon" href="{% static 'img/favicon.ico' %}">

На ваш вопрос уже был дан ответ здесь: Как заставить favicon отображаться в моем приложении django?

Короче говоря, вы можете создать новый вид, который перенаправляет favicon.ico на /static/img/favicon.ico или просто поместить фавикон с помощью HTML:

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

Отображение favicon в Google занимает время, похоже, вы уже все сделали, так что вам нужно просто немного подождать, и если он не появится, проверьте тему, которой я поделился.

Вернуться на верх