apache / apache/cloudstack

[4.22] Favicon only appears briefly, then disappears

未關閉
#12,079 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
component:UI
主要語言
Java
星號
3.1k
分支
1.4k
平均合併
6 天 19 小時
30 天內合併 PR
32

描述

### 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.

貢獻指南

開啟貢獻指南

研究方向

先比較 index.html 中硬編碼的 favicon 連結與 /etc/cloudstack/management/config.json 中的 loginFavicon 項目,然後追蹤 SPA 在登入頁面初始化期間何時套用設定。完成的標準是:在 SPA 完成載入及頁面轉換後,已設定的 favicon 仍保持可見,包括替換預設檔案之後。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
javascript
領域
frontend, web-dev
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。