fix: switch admin to subdomain mode and fix frozen-lockfile build
- Remove /admin path prefix (using admin.protdskj.top subdomain instead) - Change pnpm install to --no-frozen-lockfile for lockfile compatibility - Simplify admin Nginx config to standard SPA serving 🤖 Generated with [Qoder][https://qoder.com]
This commit is contained in:
@@ -3,7 +3,7 @@ import router from './router';
|
|||||||
import { clearStaffSession, reconcileStaffSessionFromToken, useAuthStore } from './stores/auth';
|
import { clearStaffSession, reconcileStaffSessionFromToken, useAuthStore } from './stores/auth';
|
||||||
import { ensureStaffSession, resetStaffSessionHydration } from './utils/session-hydrate';
|
import { ensureStaffSession, resetStaffSessionHydration } from './utils/session-hydrate';
|
||||||
|
|
||||||
const api = axios.create({ baseURL: '/admin/api' });
|
const api = axios.create({ baseURL: '/api' });
|
||||||
|
|
||||||
let handling401 = false;
|
let handling401 = false;
|
||||||
let handling403Portal = false;
|
let handling403Portal = false;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { useAuthStore } from '../stores/auth';
|
|||||||
import { ensureStaffSession } from '../utils/session-hydrate';
|
import { ensureStaffSession } from '../utils/session-hydrate';
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory('/admin'),
|
history: createWebHistory(),
|
||||||
routes: [
|
routes: [
|
||||||
{ path: '/login', component: () => import('../views/Login.vue'), meta: { public: true } },
|
{ path: '/login', component: () => import('../views/Login.vue'), meta: { public: true } },
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import vue from '@vitejs/plugin-vue';
|
|||||||
import { resolve } from 'path';
|
import { resolve } from 'path';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
base: '/admin/',
|
|
||||||
plugins: [vue()],
|
plugins: [vue()],
|
||||||
resolve: {
|
resolve: {
|
||||||
// 避免 src 内遗留的 .js 抢先于 .ts/.vue 被解析(曾导致 i18n 文案缺失)
|
// 避免 src 内遗留的 .js 抢先于 .ts/.vue 被解析(曾导致 i18n 文案缺失)
|
||||||
@@ -16,12 +15,6 @@ export default defineConfig({
|
|||||||
publicDir: resolve(__dirname, '../../packages/shared/public'),
|
publicDir: resolve(__dirname, '../../packages/shared/public'),
|
||||||
server: {
|
server: {
|
||||||
port: 5174,
|
port: 5174,
|
||||||
proxy: {
|
proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true } },
|
||||||
'/admin/api': {
|
|
||||||
target: 'http://localhost:3000',
|
|
||||||
changeOrigin: true,
|
|
||||||
rewrite: (path) => path.replace(/^\/admin\/api/, '/api'),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/
|
|||||||
COPY apps/player/package.json apps/player/
|
COPY apps/player/package.json apps/player/
|
||||||
COPY apps/admin/package.json apps/admin/
|
COPY apps/admin/package.json apps/admin/
|
||||||
COPY packages/shared/package.json packages/shared/
|
COPY packages/shared/package.json packages/shared/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/
|
|||||||
COPY apps/player/package.json apps/player/
|
COPY apps/player/package.json apps/player/
|
||||||
COPY apps/admin/package.json apps/admin/
|
COPY apps/admin/package.json apps/admin/
|
||||||
COPY packages/shared/package.json packages/shared/
|
COPY packages/shared/package.json packages/shared/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ server {
|
|||||||
gzip on;
|
gzip on;
|
||||||
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
|
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
|
||||||
|
|
||||||
location /admin/api/ {
|
location /api/ {
|
||||||
proxy_pass http://api:3000/api/;
|
proxy_pass http://api:3000;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
@@ -18,16 +18,7 @@ server {
|
|||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /admin/ {
|
location / {
|
||||||
alias /usr/share/nginx/html/;
|
try_files $uri $uri/ /index.html;
|
||||||
try_files $uri $uri/ @admin_spa;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @admin_spa {
|
|
||||||
rewrite ^ /index.html break;
|
|
||||||
}
|
|
||||||
|
|
||||||
location = / {
|
|
||||||
return 301 /admin/;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/
|
|||||||
COPY apps/player/package.json apps/player/
|
COPY apps/player/package.json apps/player/
|
||||||
COPY apps/admin/package.json apps/admin/
|
COPY apps/admin/package.json apps/admin/
|
||||||
COPY packages/shared/package.json packages/shared/
|
COPY packages/shared/package.json packages/shared/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
Reference in New Issue
Block a user