apache / apache/cloudstack

[4.22] Favicon only appears briefly, then disappears

Ouverte
#12,079 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
component:UI
Langage dominant
Java
Étoiles
3.1k
Forks
1.4k
Merge moyen
6 j 19 h
PR mergées (30 j)
32

Description

### problem

When customizing the Primate UI’s favicon, it flashes for ~0.5 seconds during page load (while index.html is rendered) and then disappears as the SPA transitions to a white page before the login view fully loads. The favicon never reappears even though the icon file is valid and reachable.

The favicon 99% of the time:
Image

The favicon when it loads for 0.5 seconds:
Image

### versions

Environment

- Apache CloudStack version: 4.22.0.0
- OS: Ubuntu Noble (management server)
- Browser(s) tested: Chrome / Opera (same behavior)
- Deployment setup: Two management servers behind a VIP with HAProxy

### The steps to reproduce the bug

1. Replace default favicon:

> File: `/usr/share/cloudstack-management/webapp/cloud.ico`
> File: `/usr/share/cloudstack-management/webapp/assets/logo.svg`

2. Clear browser cache and reload the login page.
3. Observe favicon behavior during and after page load.

...

### What to do about it?

The Primate UI currently references two favicon sources:

- A hardcoded `` in `index.html`
- A configurable `"loginFavicon": "assets/logo.svg"` entry in `/etc/cloudstack/management/config.json`

This creates inconsistent behavior — the browser loads `cloud.ico` first (from `index.html`), then when the SPA initializes and renders based on `config.json`, the favicon reference isn’t updated or re-applied, causing it to disappear.

To fix this:

- Unify favicon handling so the UI consistently uses the favicon defined in `config.json` (similar to `appTitle` and `loginTitle`), and
- Remove or override the hardcoded `cloud.ico` link in `index.html` at runtime.

Alternatively, ensure the SPA explicitly re-sets the favicon after it mounts (e.g., by adding a small function that reads the `loginFavicon` key and updates `` dynamically).

This would let the favicon persist across page transitions and make it fully configurable, just like the logo and title.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par comparer le lien du favicon codé en dur dans index.html avec l’entrée loginFavicon de /etc/cloudstack/management/config.json, puis suivez à quel moment la SPA applique la configuration lors de l’initialisation de la page de connexion. C’est terminé lorsque le favicon configuré reste visible une fois le chargement de la SPA terminé et lors des transitions de page, y compris après le remplacement des fichiers par défaut.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript
Domaine
frontend, web-dev
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.