Как получить мой 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 занимает время, похоже, вы уже все сделали, так что вам нужно просто немного подождать, и если он не появится, проверьте тему, которой я поделился.