SvelteKit嵌套布局下路由跳转触发404错误问题咨询
问题排查结论
这是操作失误,不是SvelteKit框架Bug,问题出在根布局的Home链接路径写法不符合相对路径解析规则。
原因说明
你在/routes/__layout.svelte中给Home链接配置的是href="./"的相对路径,相对路径会基于当前访问的URL层级解析:
- 当处于
/、/about这类一级路由路径下时,./会解析为站点根路径/,跳转正常 - 当处于
/settings/notifications这类二级路由路径下时,./会解析为当前路径的上级目录/settings/,而你的/routes/settings/目录下没有对应的index.svelte文件,因此访问不存在的/settings路径就会触发404。当你跳转到/settings路径后,再次点击Home的./就会解析为根路径/,所以第二次点击才能正常跳转首页。
修复方案
- 方案1(推荐):将根布局中Home链接的路径改为绝对路径
href="/",无论当前处于哪个路由层级,都会直接跳转至站点首页,不会出现路径解析异常。 - 方案2:如果需要保留
/settings路由的可访问性,可在/routes/settings/目录下新增index.svelte文件,作为settings根路径的对应页面,避免该路径返回404。
内容的提问来源于stack exchange,提问作者martin66
相关产品推荐
相关产品推荐

