## 原因分析 - 代码使用的静态资源路径是 `/logo/...`,但实际文件位于 `public/images/logo/...`,导致 404 并触发 `onError` 的文本回退。 - 参照 `src/pages/Login.tsx:8-10` 的候选路径与 `.env` 的 `VITE_COMPANY_LOGO_URL=/logo/auth-logo.svg` 都指向错误目录。 - `public` 目录结构为:`public/images/logo/{auth-logo.svg,evo-tech.png,logo-dark.svg,logo-icon.svg}`。 ## 修改方案 - 统一将所有 Logo 路径改为 `public/images/logo/...`。 - 更新环境变量默认值与候选列表,确保回退链条都指向存在的文件。 - 提升兼容性:使用 `import.meta.env.BASE_URL` 拼接公共目录,避免非根路径部署时的资源 404。 ## 具体改动 - `.env`:将 `VITE_COMPANY_LOGO_URL` 改为 `/images/logo/auth-logo.svg`。 - `src/pages/Login.tsx:8-10`: - 将 `const companyLogo = (import.meta.env as any).VITE_COMPANY_LOGO_URL || '/logo/evo-tech.png';` 改为使用 BASE_URL 并指向 `images/logo/evo-tech.png`。 - 将 `candidates` 改为 `['/images/logo/evo-tech.png','/images/logo/auth-logo.svg','/images/logo/logo-dark.svg']` 的 BASE_URL 版本。 - 构造公共前缀:`const publicBase = (import.meta.env as any).BASE_URL || '/';`,候选路径使用 ``${publicBase}images/logo/...``。 ## 验证步骤 - 启动开发服务器,打开登录页,确认图片请求返回 200 且 Logo 正常显示。 - 暂时将 `VITE_COMPANY_LOGO_URL` 设为一个不存在的路径,验证回退顺序依次生效,最终仍能显示有效 Logo;全部失败时回退到文本徽标 `EVO`。 - 检查控制台与网络面板,确保无 `404` 与无跨域错误。 ## 影响范围 - 仅登录页 Logo 显示路径与默认值,其他功能不受影响。