aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/router.tsx12
-rw-r--r--src/vite-env.d.ts4
2 files changed, 13 insertions, 3 deletions
diff --git a/src/router.tsx b/src/router.tsx
index 8128f45..77158f4 100644
--- a/src/router.tsx
+++ b/src/router.tsx
@@ -1,11 +1,17 @@
-import { createBrowserRouter } from 'react-router'
+import { createBrowserRouter, createHashRouter } from 'react-router'
import App from './App'
import { pageRoutes } from './route-config'
-export const router = createBrowserRouter([
+const isHashRouter = import.meta.env.VITE_ROUTER_MODE === 'hash'
+const createRouter = isHashRouter ? createHashRouter : createBrowserRouter
+
+export const router = createRouter([
{
path: '/',
Component: App,
children: pageRoutes,
},
-])
+], {
+ // The deployment base precedes the hash and must not be repeated inside it.
+ basename: isHashRouter ? '/' : import.meta.env.BASE_URL,
+})
diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts
new file mode 100644
index 0000000..f0d802a
--- /dev/null
+++ b/src/vite-env.d.ts
@@ -0,0 +1,4 @@
+interface ImportMetaEnv {
+ readonly VITE_ROUTER_MODE?: 'hash' | 'history'
+ readonly VITE_BASE_URL?: string
+}