diff --git a/service/core/router/index.cjs b/service/core/router/index.cjs index b9df3dc..ecb84d6 100644 --- a/service/core/router/index.cjs +++ b/service/core/router/index.cjs @@ -94,19 +94,10 @@ const matchFile = async (request, response) => { if (fs.existsSync(mappedPath)) { targetPath = mappedPath } else if (cleanPath.startsWith('/assets/')) { - const filename = cleanPath.split('/').pop() - const prefix = filename.split('-')[0] - const ext = filename.split('.').pop() - if (prefix && ext) { - const assetsDir = dist + '/assets' - if (fs.existsSync(assetsDir)) { - const files = fs.readdirSync(assetsDir) - const matchedFile = files.find(f => f.startsWith(prefix + '-') && f.endsWith('.' + ext)) - if (matchedFile) { - targetPath = assetsDir + '/' + matchedFile - } - } - } + response.writeHead(404, { 'Content-Type': 'text/plain' }) + response.end('Asset Not Found') + resolve(true) + return } } fs.readFile(targetPath, (err, file) => { diff --git a/src/router/index.js b/src/router/index.js index 9a5a03d..88f4efa 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -51,7 +51,23 @@ router.onError((error) => { const isReloaded = sessionStorage.getItem('chunk_reload_flag') if (!isReloaded) { sessionStorage.setItem('chunk_reload_flag', 'true') - window.location.reload() + + const forceReload = () => { + const url = new URL(window.location.href) + url.searchParams.set('t', Date.now()) + window.location.href = url.href + } + + if ('serviceWorker' in navigator) { + navigator.serviceWorker.getRegistrations().then(registrations => { + for (const registration of registrations) { + registration.unregister() + } + forceReload() + }).catch(() => { forceReload() }) + } else { + forceReload() + } } } })