diff --git a/internal/router/router.go b/internal/router/router.go index df791c2..babf85f 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -83,9 +83,19 @@ func Setup(c *Controllers) *gin.Engine { return } - // 注入 base URL 配置到 HTML - // 前端使用 urlPrefix,后端 API 使用 urlPrefix + /api/v1 html := string(data) + + // 如果配置了 URL 前缀,需要将绝对路径资源添加前缀 + if urlPrefix != "" { + // 替换 /assets/ 为 /prefix/assets/ + html = strings.ReplaceAll(html, `"/assets/`, `"`+urlPrefix+`/assets/`) + html = strings.ReplaceAll(html, `'/assets/`, `'`+urlPrefix+`/assets/`) + // 替换 /logo.svg 为 /prefix/logo.svg + html = strings.ReplaceAll(html, `"/logo.svg"`, `"`+urlPrefix+`/logo.svg"`) + html = strings.ReplaceAll(html, `'/logo.svg'`, `'`+urlPrefix+`/logo.svg'`) + } + + // 注入 base URL 配置到 HTML configScript := `` html = strings.Replace(html, "", configScript+"", 1) diff --git a/web/vite.config.ts b/web/vite.config.ts index 1222e6f..4d86a46 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -19,18 +19,6 @@ export default defineConfig({ } } }, - build: { - // 使用相对路径,这样可以部署在任何路径下 - // 资源引用会使用 ./assets/ 而不是 /assets/ - rollupOptions: { - output: { - // 确保资源使用相对路径 - assetFileNames: 'assets/[name]-[hash][extname]', - chunkFileNames: 'assets/[name]-[hash].js', - entryFileNames: 'assets/[name]-[hash].js' - } - } - }, - // 使用相对路径作为 base,这样资源会相对于 HTML 文件加载 - base: './' + // 使用绝对路径,后端会根据 url_prefix 动态注入正确的路径 + base: '/' })