forked from bai/curriculum-project-hub
de9f846fd0
纯 SPA:adapter-static + fallback index.html,不做 SSR/预渲染。
index.html / main.ts / App.svelte 由 app.html + src/routes/ 取代。
两项配置是承重的(ADR-0029),不是风格选择:
appDir: '_filelib' 默认 _app 会与 admin-web 在根上注册的 /_app/*
撞成 Fastify 重复路由,启动即抛错。
paths.relative: false 同一份 index.html 会在 /app 和
/database/dashboard/users 等不同深度送出,
相对资源路径会解析到错的 base。
dev 代理表列出后端拥有的全部路径:JSON API、免鉴权 bootstrap
(/database/config)、OAuth、以及 DEV 一键登录端点 —— 后者不代理会被
SPA 回退吃掉。
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import adapter from '@sveltejs/adapter-static';
|
|
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
|
|
|
/**
|
|
* 老师端 /app 与管理后台 /database/* 共用这一份 SPA 构建产物,由 hub 后端静态托管
|
|
* (见 hub/src/database/static.ts)。服务端不渲染任何页面,只提供 /database/api/*。
|
|
*
|
|
* 两个关键配置:
|
|
*
|
|
* - `appDir: '_filelib'` —— 默认 `_app` 会与 admin-web 在同一个 Fastify 实例上注册的
|
|
* 根 `/_app/*` 资源路由撞车(见 hub/src/admin/static.ts),Fastify 重复路由会直接
|
|
* 在启动时抛错。改名后两套 SPA 的资源路径互不干扰。
|
|
*
|
|
* - `paths.relative: false` —— 同一份 index.html 会在不同深度的 URL 下被送出
|
|
* (`/app`、`/database/dashboard/users`),相对资源路径会解析错。必须用绝对路径。
|
|
*/
|
|
const config = {
|
|
preprocess: vitePreprocess(),
|
|
kit: {
|
|
adapter: adapter({
|
|
pages: 'build',
|
|
assets: 'build',
|
|
fallback: 'index.html',
|
|
precompress: false,
|
|
strict: false,
|
|
}),
|
|
appDir: '_filelib',
|
|
paths: {
|
|
base: '',
|
|
relative: false,
|
|
},
|
|
},
|
|
};
|
|
|
|
export default config;
|