fix(client): Vite related boot mechanism revision (#8753)

* preload app css

* remove salt

* APP_FETCH_FAILED error

* set max-age to 15s
This commit is contained in:
tamaina 2022-05-29 10:58:54 +09:00 committed by GitHub
parent 4917961736
commit f1d2398eac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 17 deletions

View file

@ -54,14 +54,10 @@
//#endregion //#endregion
//#region Script //#region Script
const salt = localStorage.getItem('salt') import(`/assets/${CLIENT_ENTRY}`)
? `?salt=${localStorage.getItem('salt')}` .catch(async e => {
: '';
import(`/assets/${CLIENT_ENTRY}${salt}`)
.catch(async () => {
await checkUpdate(); await checkUpdate();
renderError('APP_FETCH_FAILED'); renderError('APP_FETCH_FAILED', JSON.stringify(e));
}) })
//#endregion //#endregion
@ -142,9 +138,6 @@
// eslint-disable-next-line no-inner-declarations // eslint-disable-next-line no-inner-declarations
function refresh() { function refresh() {
// Random
localStorage.setItem('salt', Math.random().toString().substr(2, 8));
// Clear cache (service worker) // Clear cache (service worker)
try { try {
navigator.serviceWorker.controller.postMessage('clear'); navigator.serviceWorker.controller.postMessage('clear');

View file

@ -247,7 +247,7 @@ router.get(['/@:user', '/@:user/:sub'], async (ctx, next) => {
icon: meta.iconUrl, icon: meta.iconUrl,
themeColor: meta.themeColor, themeColor: meta.themeColor,
}); });
ctx.set('Cache-Control', 'public, max-age=30'); ctx.set('Cache-Control', 'public, max-age=15');
} else { } else {
// リモートユーザーなので // リモートユーザーなので
// モデレータがAPI経由で参照可能にするために404にはしない // モデレータがAPI経由で参照可能にするために404にはしない
@ -292,7 +292,7 @@ router.get('/notes/:note', async (ctx, next) => {
themeColor: meta.themeColor, themeColor: meta.themeColor,
}); });
ctx.set('Cache-Control', 'public, max-age=180'); ctx.set('Cache-Control', 'public, max-age=15');
return; return;
} }
@ -329,7 +329,7 @@ router.get('/@:user/pages/:page', async (ctx, next) => {
}); });
if (['public'].includes(page.visibility)) { if (['public'].includes(page.visibility)) {
ctx.set('Cache-Control', 'public, max-age=180'); ctx.set('Cache-Control', 'public, max-age=15');
} else { } else {
ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); ctx.set('Cache-Control', 'private, max-age=0, must-revalidate');
} }
@ -360,7 +360,7 @@ router.get('/clips/:clip', async (ctx, next) => {
themeColor: meta.themeColor, themeColor: meta.themeColor,
}); });
ctx.set('Cache-Control', 'public, max-age=180'); ctx.set('Cache-Control', 'public, max-age=15');
return; return;
} }
@ -385,7 +385,7 @@ router.get('/gallery/:post', async (ctx, next) => {
themeColor: meta.themeColor, themeColor: meta.themeColor,
}); });
ctx.set('Cache-Control', 'public, max-age=180'); ctx.set('Cache-Control', 'public, max-age=15');
return; return;
} }
@ -409,7 +409,7 @@ router.get('/channels/:channel', async (ctx, next) => {
themeColor: meta.themeColor, themeColor: meta.themeColor,
}); });
ctx.set('Cache-Control', 'public, max-age=180'); ctx.set('Cache-Control', 'public, max-age=15');
return; return;
} }
@ -468,7 +468,7 @@ router.get('(.*)', async ctx => {
icon: meta.iconUrl, icon: meta.iconUrl,
themeColor: meta.themeColor, themeColor: meta.themeColor,
}); });
ctx.set('Cache-Control', 'public, max-age=300'); ctx.set('Cache-Control', 'public, max-age=15');
}); });
// Register router // Register router

View file

@ -37,6 +37,10 @@ html
link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg')
link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg')
link(rel='stylesheet' href='/assets/fontawesome/css/all.css') link(rel='stylesheet' href='/assets/fontawesome/css/all.css')
link(rel='modulepreload' href=`/assets/${clientEntry.file}`)
each href in clientEntry.css
link(rel='preload' href=`/assets/${href}` as='style')
each href in clientEntry.css each href in clientEntry.css
link(rel='preload' href=`/assets/${href}` as='style') link(rel='preload' href=`/assets/${href}` as='style')