mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 15:38:45 -07:00
1eba8d9345
Use base './' so built index.html references ./assets/... instead of /assets/..., letting the SPAs work under the Easy Launcher's single-origin path prefix (https://<apex>/__dn/admin/) as well as the subdomain layout. Root-absolute paths would skip the prefix and 404.
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import path from 'node:path';
|
|
|
|
// Source lives at DorkNet.Server/admin-ui; build emits straight into
|
|
// DorkNet.Server/wwwroot/admin so the static file middleware picks it
|
|
// up at admin.localhost without any extra publish wiring.
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
// Relative-base so the built index.html references its assets as
|
|
// `./assets/...` instead of `/assets/...`. Required when the SPA is
|
|
// served under a path prefix like the Easy Launcher's single-origin
|
|
// mode (`https://<apex>/__dn/admin/`) — a root-absolute asset path
|
|
// would skip the /__dn/admin/ prefix and 404 on the wrong server
|
|
// host. Still works fine for the subdomain case
|
|
// (`admin.<apex>/...`) since `./assets/...` resolves against the
|
|
// document URL in both shapes.
|
|
base: './',
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, 'src'),
|
|
},
|
|
},
|
|
build: {
|
|
outDir: path.resolve(__dirname, '../wwwroot/admin'),
|
|
emptyOutDir: true,
|
|
target: 'es2022',
|
|
sourcemap: true,
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
proxy: {
|
|
// Dev convenience: `npm run dev` proxies API calls to the
|
|
// running ASP.NET server so we can iterate on the SPA with HMR
|
|
// without dealing with CORS. Adjust target if the server runs
|
|
// on a non-default port locally.
|
|
'/api': {
|
|
target: 'http://localhost:80',
|
|
changeOrigin: true,
|
|
secure: false,
|
|
},
|
|
},
|
|
},
|
|
});
|