
* If a base path is provided at build time, use it. * Base path can be set with `VIKUNJA_FRONTEND_BASE` at build time * `VIKUNJA_FRONTEND_BASE` sets `import.meta.env.BASE_URL` after Vite resolves it. * Usages of `import.meta.env.BASE_URL` are statically replaced at build time. * If base path is not provided, `import.meta.env.BASE_URL` defaults to '/'. * Documentation: https://vitejs.dev/guide/env-and-mode.html * Fixes: * Manifest not loading because of incorrect path. * Service Worker not loading because path is incorrect in manifest. * Service Worker crashing because import of workbox is from wrong path. * Service Worker not loading a task because path is incorrect in event listener. * Incorrect URLs being set on window because base path is incorrect. * ex: `/login` vs `/base/login` Signed-off-by: Jef Oliver <jef@eljef.me>
14 lines
715 B
TypeScript
14 lines
715 B
TypeScript
/**
|
|
* Get full BASE_URL
|
|
* - including path
|
|
* - will always end with a trailing slash
|
|
*/
|
|
export function getFullBaseUrl() {
|
|
// (1) The injected BASE_URL is declared from the `resolvedBase` that might miss a trailing slash...
|
|
// see: https://github.com/vitejs/vite/blob/b35fe883fdc699ac1450882562872095abe9959b/packages/vite/src/node/config.ts#LL614C25-L614C25
|
|
const rawBase = import.meta.env.BASE_URL
|
|
// (2) so we readd a slash like done here
|
|
// https://github.com/vitejs/vite/blob/b35fe883fdc699ac1450882562872095abe9959b/packages/vite/src/node/config.ts#L643
|
|
// See this comment: https://github.com/vitejs/vite/pull/10723#issuecomment-1303627478
|
|
return rawBase.endsWith('/') ? rawBase : rawBase + '/'
|
|
} |