Favourite Icon

A favicon (short for favourite icon) is an image file that browsers associate with a particular website.

In order to support a variety of desktop and mobile devices, a number of such icon files need to be generated in different sizes and formats.

Some browsers will rely on /favicon.ico, other browsers support a number of different images in the PNG image file format.

Cubane supports a number of different favicon formats out of the box and will generate favicon files based on one image source automatically for you.

Using Standard Favourite Icons

Simply use the favicons template tag as part of the resource_tags template library to generate the required markup for a number of different favicon references:

{% load resource_tags %}

<html>
    <head>
        {% favicons %}
    </head>

    ...
</html>

The favicon references are not present in Debug mode and will generate HTTP 404 response codes if a browser attempts to download a favicon image file.

However, in Production mode, those files will have been generated automatically as part of the website deployment process.

You can generate favicon image files manually by executing the following management script:

$ python manage.py create_favicons

By default, the favicon image generator will use the file static/img/favicon.png relative to your application root folder.

Tip

For best results, we advise using an image size of 320 by 320 pixels for the favicon.png source image file.

Changing source image file

The image source file that is used to generate different versions of the favicon is determined by the two settings variables: FAVICON_PATH and FAVICON_FILENAME. Together they form a path within the static root folder of your application.

Feel free to change the path or filename as you require. The image source file is required to be of sufficient resolution. Some favicon image formats require up to 310 by 310 pixels.

Note

If the source image file does not exist, then Cubane will simply ignore the fact and will deploy the website without favicon files being generated. However, the website may still contain references to favicon image files in various formats.

Adding favicon image formats

You can customise the particular image file formats that Cubane generates by changing FAVICON_PNG_SIZES and/or FAVICON_ICO_SIZES.

FAVICON_PNG_SIZES represents a list of image formats that are generated in the PNG image file format:

FAVICON_PNG_SIZES = [
    {'size': '16x16', 'filename': 'favicon-16x16.png'},
    {'size': '24x24', 'filename': 'favicon-24x24.png'},
    {'size': '32x32', 'filename': 'favicon-32x32.png'},
    ...
]

Simply add or replace this list of image sizes by declaring a particular size and the filename of the resulting favicon image file.

The second settings variable FAVICON_ICO_SIZES defines the various image sizes that are combined into the default favicon.ico file:

FAVICON_ICO_SIZES = [
    {'size': '16x16',   'filename': 'favicon-16x16.png'},
    {'size': '24x24',   'filename': 'favicon-24x24.png'},
    {'size': '32x32',   'filename': 'favicon-32x32.png'},
    {'size': '48x48',   'filename': 'favicon-48x48.png'},
    {'size': '64x64',   'filename': 'favicon-64x64.png'},
    {'size': '128x128', 'filename': 'favicon-128x128.png'}
]

Simply reference any previously generated PNG image that should be embedded into one single icon file: favicon.ico.

Customising favicon markup

When using the favicons template tag, Cubane will simply include the template file cubane/favicons.html, which contains markup for a list of default favicon references.

You can either override the template file within your application by creating your own cubane/favicons.html file within the static folder of your application or simply use your own markup to list all references to the various favicon image files.