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

SvelteKit路由重定向失效:旧缓存导致跳转至已移除路由

SvelteKit根路径重定向修改后仍跳转旧路径的问题解决

问题描述

原SvelteKit应用将根路径/重定向至/home,后续调整文件结构将/home迁移至/auth/home,并修改src/routes/+page.server.js中的重定向逻辑为跳转至/auth/home,同时添加hooks.server.js用于路由权限校验。但修改后访问根路径仍跳转至已不存在的/home,尝试使用goto替代redirect也无效。

原配置

原文件结构

src/routes/                                                                                                        
├── +error.svelte                                                                                                                  
├── +layout.server.js                                                                                                              
├── +layout.svelte                                                                                                                 
├── (main)                                                                                                                         
│   ├── home                                                                                                                       
│   │   ├── +page.server.js                                                                                                        
│   │   └── +page.svelte                                                                                                           
│   ├── +layout.server.js                                                                                                          
│   ├── +layout.svelte
│   ├── MainSideBar.svelte
│   └── online
│       └── [suc]
│           ├── +page.server.js
│           └── +page.svelte
├── +page.server.js

原重定向代码

import { redirect } from '@sveltejs/kit';

export function load() {
    redirect(308, '/home');
}

修改后的配置

修改后文件结构

src/routes/
├── auth
│   ├── +layout.server.js
│   ├── +layout.svelte
│   ├── (main)
│   │   ├── home
│   │   │   ├── +page.server.js
│   │   │   └── +page.svelte
│   │   ├── +layout.server.js
│   │   ├── +layout.svelte
│   │   ├── MainSideBar.svelte
│   │   └── online
│   │       └── [suc]
│   │           ├── +page.server.js
│   │           └── +page.svelte
│   └── wiki
│       ├── [category]
│       │   └── [slug]
│       │       ├── +page.server.js
│       │       └── +page.svelte
│       ├── +layout.server.js
│       ├── +layout.svelte
│       ├── +page.svelte
│       └── SideNavigation.svelte
├── +error.svelte
├── +layout.svelte
├── login
│   ├── +page.server.js
│   └── +page.svelte
├── logout
│   └── +page.server.js
└── +page.server.js

修改后重定向代码

import { redirect } from '@sveltejs/kit';

export function load() {
    redirect(308, '/auth/home');
}

hooks.server.js代码

import { redirect } from '@sveltejs/kit';

/** @type {import('@sveltejs/kit').Handle} */
export async function handle({ event, resolve }) {
    const authToken = event.cookies.get('authToken');
    if (event.url.pathname.startsWith('/auth')) {
        if (!authToken) {
            const redirectTo = event.url.pathname + event.url.search;
            redirect(303, `/login?redirect=${redirectTo}`);
        }
    }
    event.locals.token = authToken;
    const response = await resolve(event);
    return response;
}

解决方法

清空浏览器缓存,以Firefox为例:打开开发者工具的网络面板,勾选「禁用缓存」选项,加载页面后取消勾选即可恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:59:53