Procházet zdrojové kódy

fix: resolve asset 404 errors with preload handler and asset preservation

unknown před 2 dny
rodič
revize
0dcc4839c0
2 změnil soubory, kde provedl 17 přidání a 0 odebrání
  1. 11 0
      server_update.sh
  2. 6 0
      src/main.ts

+ 11 - 0
server_update.sh

@@ -12,8 +12,19 @@ git pull origin master
 # 2. Собираем фронтенд
 echo "building frontend..."
 npm install --legacy-peer-deps
+
+# Keep old assets briefly to prevent 404 for existing sessions
+echo "preserving old assets..."
+mkdir -p dist/assets
+rm -rf /tmp/radionica_assets_backup
+cp -r dist/assets /tmp/radionica_assets_backup || true
+
 bash build_frontend.sh
 
+# Restore old assets (no-clobber, don't overwrite new files)
+echo "restoring old assets for compatibility..."
+cp -n /tmp/radionica_assets_backup/* dist/assets/ 2>/dev/null || true
+
 # 3. Обновляем бэкенд
 echo "updating backend..."
 ./backend/venv/bin/pip install -r backend/requirements.txt

+ 6 - 0
src/main.ts

@@ -6,6 +6,12 @@ import router from "./router";
 import i18n from "./i18n";
 import "./index.css";
 
+// Handle dynamic import failures (assets deleted after deploy)
+window.addEventListener('vite:preloadError', () => {
+  console.warn('Vite preload error detected, reloading page for fresh assets...');
+  window.location.reload();
+});
+
 const app = createApp(App);
 
 app.use(createPinia());