saifrim
saifrim

Reputation: 19

Favicon redirect in django 2.0

I'm trying to redirect the default browsers request of /favicon.ico to serve the picture from my static folder and I get a 404(server log screenshot).

settings.py

STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")

urls.py

from django.contrib import admin
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import include, path
from django.views.generic.base import RedirectView


urlpatterns = [
    path('admin/', admin.site.urls),
    path(
        'favicon.ico',
        RedirectView.as_view(url=staticfiles_storage.url('upload.ico'))
    ),
    path('', include('uploader.urls'))
]

My directory structure:

  ../  
  ├ imguploader/  
  |  ├  __init__.py  
  |  ├  settings.py
  |  ├  urls.py
  |  └  wsgi.py
  ├  static/  
  |  ├  admin/  
  |  └  upload.ico
  ├ manage.py
  |...

Upvotes: 1

Views: 2006

Answers (1)

starglow
starglow

Reputation: 41

You can set STATICFILES_DIRS in settings.py, works for me:

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

urls.py:

from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.views.generic.base import RedirectView

urlpatterns = [
    path('favicon.ico', RedirectView.as_view(url=settings.STATIC_URL + 'favicon.ico')),
    path('admin/', admin.site.urls),
]

Upvotes: 4

Related Questions