Skip to content

Commit 0541981

Browse files
committed
feat(dashboard): improve service worker registration and base URL handling
1 parent a95e57e commit 0541981

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

dashboard/src/sw-register.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
1+
const ensureBase = (value?: string) => {
2+
if (!value) {
3+
return '/dashboard/'
4+
}
5+
6+
if (!value.startsWith('/')) {
7+
value = `/${value}`
8+
}
9+
10+
return value.endsWith('/') ? value : `${value}/`
11+
}
12+
113
export function registerSW() {
214
if ('serviceWorker' in navigator) {
3-
const baseUrl = import.meta.env.BASE_URL || '/'
15+
const baseUrl = ensureBase(import.meta.env.BASE_URL)
416

517
navigator.serviceWorker
618
.register(`${baseUrl}sw.js`)
@@ -24,4 +36,4 @@ export function registerSW() {
2436
console.error('Service Worker registration failed:', registrationError)
2537
})
2638
}
27-
}
39+
}

dashboard/vite.config.mts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,22 @@ import tsconfigPaths from 'vite-tsconfig-paths'
77
import path from 'path'
88
import { VitePWA } from 'vite-plugin-pwa'
99

10+
const ensureBase = (value?: string) => {
11+
if (!value) {
12+
return '/dashboard/'
13+
}
14+
15+
if (!value.startsWith('/')) {
16+
value = `/${value}`
17+
}
18+
19+
return value.endsWith('/') ? value : `${value}/`
20+
}
21+
22+
const base = ensureBase(process.env.BASE_URL)
23+
1024
export default defineConfig({
11-
base: process.env.BASE_URL,
25+
base,
1226
clearScreen: false,
1327
server: {
1428
host: true,
@@ -77,7 +91,7 @@ export default defineConfig({
7791
registerType: 'autoUpdate',
7892
injectRegister: false,
7993
workbox: {
80-
navigateFallback: '/index.html',
94+
navigateFallback: `${base}offline.html`,
8195
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
8296
skipWaiting: true,
8397
clientsClaim: true,
@@ -97,4 +111,4 @@ export default defineConfig({
97111
},
98112
}),
99113
],
100-
})
114+
})

0 commit comments

Comments
 (0)