You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SvelteKit部署Express子路由后登录重定向路径异常问题

解决SvelteKit挂载Express子路由后重定向路径错误的问题

1. 配置SvelteKit基础路径

在项目根目录的svelte.config.js中,设置kit.paths.base为你的子路由前缀,让SvelteKit知晓自身运行在子路由下:

import adapter from '@sveltejs/adapter-node';

/** @type {import('@sveltejs/kit').Config} */
const config = {
	kit: {
		adapter: adapter(),
		paths: {
			base: '/newapp'
		}
	}
};

export default config;

这个配置会让SvelteKit生成的所有路由、静态资源路径、重定向地址自动带上/newapp前缀,包括未登录时的跳转目标会从/login变为/newapp/login。

2. 重新构建SvelteKit应用

修改配置后,执行构建命令更新产物:

npm run build

3. 保留现有Express挂载配置

你的Express挂载代码无需改动,继续使用:

import { handler } from './build/handler.js';
app.use('/newapp', handler);

额外注意事项

  • 如果应用中有手动编写的重定向逻辑(比如+page.server.js或hooks里的redirect调用),要通过$app/paths导入base变量拼接路径,避免硬编码:
    import { redirect } from '@sveltejs/kit';
    import { base } from '$app/paths';
    
    export async function load() {
      // 未登录时重定向
      throw redirect(302, `${base}/login`);
    }
    
  • 静态资源引用会自动适配base路径,无需额外调整。

内容的提问来源于stack exchange,提问作者radop33392

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:40:33