Files
KimiCodeSwitch/website/vite.config.ts
T
KimiSwitch Dev 1b5cd0f416 feat(website): SEO 升级 — BrowserRouter + 每页独立 meta
- HashRouter → BrowserRouter(basename /KimiSwitch),GitHub Pages 用 404.html SPA 回退,/features /download /changelog 变为可收录的独立 URL
- 每页独立 title / description / OG / canonical(RouteMeta 随语言切换)
- og:image 改为绝对地址;sitemap 更新为干净路径
2026-08-01 19:56:54 +08:00

31 lines
912 B
TypeScript

import { defineConfig, type Plugin } from "vite";
import react from "@vitejs/plugin-react";
import { copyFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
/**
* GitHub Pages SPA fallback: any deep path (e.g. /KimiSwitch/features) is
* served by 404.html; duplicating the built index.html there lets the
* BrowserRouter boot and render the right route. This keeps every page
* indexable as a real URL instead of a `#/` fragment.
*/
function generate404(): Plugin {
return {
name: "generate-404",
apply: "build",
closeBundle() {
const dist = fileURLToPath(new URL("./dist", import.meta.url));
copyFileSync(`${dist}/index.html`, `${dist}/404.html`);
},
};
}
// GitHub Pages subpath: billowliu2.github.io/KimiSwitch/
export default defineConfig({
base: "/KimiSwitch/",
plugins: [react(), generate404()],
resolve: {
alias: { "@": "/src" },
},
});