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:
@@ -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 恢复或选择初始会话 */
|
||||
|
||||
Reference in New Issue
Block a user