fix: 修复对话页面白屏 — SW 注册缺失导致缓存冲突

根因: 提交 20cdcc7 删除了 main.tsx 中的 SW 注册代码,声称 App.tsx
会调用 registerServiceWorker(),但实际未调用。旧 SW (cyrene-v1) 的
cache-first 策略拦截请求返回不兼容缓存,导致 React 白屏。

修复:
- App.tsx: 在组件挂载时调用 registerServiceWorker()
- sw.js: CACHE_NAME 升级到 cyrene-v2 强制清理旧缓存,增加 SKIP_WAITING
- main.tsx: 修正注释
This commit is contained in:
2026-05-20 20:12:46 +08:00
parent 20cdcc748e
commit 4058aae1e4
3 changed files with 25 additions and 6 deletions
+7
View File
@@ -7,6 +7,7 @@ import { useChat } from '@/hooks/useChat';
import { useSessionStore, isAdminUser } from '@/store/sessionStore';
import { useChatStore } from '@/store/chatStore';
import { fetchMessages } from '@/api/sessions';
import { registerServiceWorker } from '@/hooks/usePWA';
/** URL Hash 工具 */
const SESSION_HASH_PREFIX = 'session=';
@@ -44,6 +45,12 @@ export default function App() {
const initializedRef = useRef(false);
// ========== PWA Service Worker ==========
// 注册 Service Worker(在 main.tsx 移除内联注册后,由 App 组件负责)
useEffect(() => {
registerServiceWorker();
}, []);
// ========== URL Hash 路由 ==========
/** 根据 hash 恢复或选择初始会话 */