diff --git a/packages/core/src/htmlPlugin.ts b/packages/core/src/htmlPlugin.ts
index 51039f1..34fede2 100644
--- a/packages/core/src/htmlPlugin.ts
+++ b/packages/core/src/htmlPlugin.ts
@@ -338,8 +338,9 @@ function createRewire(
baseUrl: string,
proxyUrlKeys: string[],
) {
+ const regWithBase = path.join(baseUrl, reg)
return {
- from: new RegExp(`^/${reg}*`),
+ from: new RegExp(`^/${reg}*|^${regWithBase}*`),
to({ parsedUrl }: any) {
const pathname: string = parsedUrl.path
diff --git a/packages/playground/mpaBase/.env b/packages/playground/mpaBase/.env
new file mode 100644
index 0000000..0c16508
--- /dev/null
+++ b/packages/playground/mpaBase/.env
@@ -0,0 +1,2 @@
+NODE_ENV=dev
+ENV=env
diff --git a/packages/playground/mpaBase/index.html b/packages/playground/mpaBase/index.html
new file mode 100644
index 0000000..eb67b37
--- /dev/null
+++ b/packages/playground/mpaBase/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ test-<%- title %>
+
+
+
+
+ index app
+ <%- ENV %>
+ <%- NODE_ENV %>
+
+
diff --git a/packages/playground/mpaBase/other.html b/packages/playground/mpaBase/other.html
new file mode 100644
index 0000000..f8125ef
--- /dev/null
+++ b/packages/playground/mpaBase/other.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ <%- title %>
+
+
+
+ <%- ENV %>
+ <%- NODE_ENV %>
+
+ other page
+
+
diff --git a/packages/playground/mpaBase/package.json b/packages/playground/mpaBase/package.json
new file mode 100644
index 0000000..3dee587
--- /dev/null
+++ b/packages/playground/mpaBase/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "playground-map",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build"
+ },
+ "dependencies": {
+ "vite-plugin-html": "workspace:*",
+ "vue": "^3.2.31",
+ "vue-router": "^4.0.14"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^2.2.4",
+ "@vue/compiler-sfc": "^3.2.31",
+ "vite": "^2.8.6"
+ }
+}
diff --git a/packages/playground/mpaBase/public/favicon.ico b/packages/playground/mpaBase/public/favicon.ico
new file mode 100644
index 0000000..df36fcf
Binary files /dev/null and b/packages/playground/mpaBase/public/favicon.ico differ
diff --git a/packages/playground/mpaBase/public/inject.js b/packages/playground/mpaBase/public/inject.js
new file mode 100644
index 0000000..118ee41
--- /dev/null
+++ b/packages/playground/mpaBase/public/inject.js
@@ -0,0 +1 @@
+console.log('inject successfully!')
diff --git a/packages/playground/mpaBase/src/App.vue b/packages/playground/mpaBase/src/App.vue
new file mode 100644
index 0000000..1c57433
--- /dev/null
+++ b/packages/playground/mpaBase/src/App.vue
@@ -0,0 +1,5 @@
+
+ hello world
+
+
+
diff --git a/packages/playground/mpaBase/src/main.ts b/packages/playground/mpaBase/src/main.ts
new file mode 100644
index 0000000..43a1997
--- /dev/null
+++ b/packages/playground/mpaBase/src/main.ts
@@ -0,0 +1,16 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+import { createRouter, createWebHistory } from 'vue-router'
+// import { createRouter, createWebHashHistory } from 'vue-router'
+
+const router = createRouter({
+ history: createWebHistory(),
+ routes: [
+ {
+ path: '/test',
+ component: () => import('./test.vue'),
+ },
+ ],
+})
+
+createApp(App).use(router).mount('#app')
diff --git a/packages/playground/mpaBase/src/other-app.vue b/packages/playground/mpaBase/src/other-app.vue
new file mode 100644
index 0000000..f97a9a3
--- /dev/null
+++ b/packages/playground/mpaBase/src/other-app.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/packages/playground/mpaBase/src/other-main.ts b/packages/playground/mpaBase/src/other-main.ts
new file mode 100644
index 0000000..66dc818
--- /dev/null
+++ b/packages/playground/mpaBase/src/other-main.ts
@@ -0,0 +1,15 @@
+import { createApp } from 'vue'
+import App from './other-app.vue'
+import { createRouter, createWebHashHistory } from 'vue-router'
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes: [
+ {
+ path: '/test',
+ component: () => import('./test.vue'),
+ },
+ ],
+})
+
+createApp(App).use(router).mount('#app')
diff --git a/packages/playground/mpaBase/src/test.vue b/packages/playground/mpaBase/src/test.vue
new file mode 100644
index 0000000..e598902
--- /dev/null
+++ b/packages/playground/mpaBase/src/test.vue
@@ -0,0 +1 @@
+test
diff --git a/packages/playground/mpaBase/vite.config.ts b/packages/playground/mpaBase/vite.config.ts
new file mode 100644
index 0000000..fc39e45
--- /dev/null
+++ b/packages/playground/mpaBase/vite.config.ts
@@ -0,0 +1,59 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import { createHtmlPlugin } from 'vite-plugin-html'
+
+export default defineConfig({
+ server: {
+ proxy: {
+ '/api': 'http://localhost:8080',
+ },
+ },
+ base: '/basetest/',
+ plugins: [
+ vue(),
+ createHtmlPlugin({
+ minify: true,
+ pages: [
+ {
+ entry: 'src/main.ts',
+ filename: 'index.html',
+ template: 'index.html',
+ injectOptions: {
+ data: {
+ title: 'index',
+ injectScript: ``,
+ },
+ tags: [
+ {
+ injectTo: 'body-prepend',
+ tag: 'div',
+ attrs: {
+ id: 'tag1',
+ },
+ },
+ ],
+ },
+ },
+ {
+ entry: 'src/other-main.ts',
+ filename: 'other.html',
+ template: 'other.html',
+ injectOptions: {
+ data: {
+ title: 'other page',
+ },
+ tags: [
+ {
+ injectTo: 'body-prepend',
+ tag: 'div',
+ attrs: {
+ id: 'tag2',
+ },
+ },
+ ],
+ },
+ },
+ ],
+ }),
+ ],
+})