Which Frontend Plugin Slot Can Be Used to Replace the Favicon?

Hello everyone,

I’m trying to change the favicon in my Open edX (Tutor) installation using Frontend Plugin Slots, rather than forking the MFE or patching Django templates.

Here’s what I’ve tried in my plugin:

from tutormfe.hooks import PLUGIN_SLOTS
from openedx.core.djangoapps.plugin_api.views import PLUGIN_OPERATIONS, DIRECT_PLUGIN

PLUGIN_SLOTS.add_items([
    (
        "all",
        "head_elements_slot",
        """
        {
          op: PLUGIN_OPERATIONS.Insert,
          widget: {
            id: 'custom_favicon',
            type: DIRECT_PLUGIN,
            RenderWidget: () => (
              <link
                rel="icon"
                href="https://my-cdn.com/my_favicon.ico"
                data-react-helmet="true"
              />
            ),
          },
        }
        """
    ),
])

  • No errors occur, but the favicon never changes; it remains the default Indigo icon.
  • I’ve checked the tutormfe docs and can’t find any slot related to <head> or the favicon.

Questions:

  1. Is there a specific slot I should use to override the favicon via Frontend Plugin Slots?
  2. If no such slot exists, what is the recommended way to change the favicon without forking the MFE or editing Django templates?

Thanks in advance for any guidance!

To change the logo, there is the logo_slot. You can check out all available slots here:

If you have Indigo enabled, you can simply change the favicon.ico inside the LMS and CMS plugin folders of Indigo.

You can replace it via MFE Configuration setting the value FAVICON_URL

I disabled the Indigo theme, and I’ve already looked for a favicon slot but couldn’t find one, and it still doesn’t work.

inside the config.yml file? or who

You can create a plugin to override defaults configurations, check here GitHub - overhangio/tutor-mfe: This plugin makes it possible to easily add micro frontend (MFE) applications on top of an Open edX platform that runs with Tutor.