diff --git a/web/Dockerfile b/web/Dockerfile index 1d6bd8ff..a6603894 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -4,6 +4,7 @@ WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile COPY . . +ENV VITE_BASE_PATH=/skillhub-web/ RUN pnpm build FROM jsessh-registry.cn-shanghai.cr.aliyuncs.com/base-images/nginx-skillhub:alpine diff --git a/web/src/bootstrap.ts b/web/src/bootstrap.ts index 8c8ddc6c..b813de02 100644 --- a/web/src/bootstrap.ts +++ b/web/src/bootstrap.ts @@ -7,7 +7,8 @@ async function loadRuntimeConfig() { await new Promise((resolve, reject) => { const script = document.createElement('script') - script.src = '/runtime-config.js' + const base = new URL('./', document.baseURI).pathname + script.src = `${base}runtime-config.js` script.async = false script.onload = () => resolve() script.onerror = () => reject(new Error('Failed to load runtime config')) diff --git a/web/vite.config.ts b/web/vite.config.ts index 3b2eb055..caac3178 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -3,6 +3,7 @@ import react from '@vitejs/plugin-react' import * as path from 'path' export default defineConfig({ + base: process.env.VITE_BASE_PATH || '/', plugins: [react()], resolve: { alias: {