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

SvelteKit路由__layout文件内锚点href如何避免父路径硬编码

解决方法

完全可行,有以下几种实现方式,推荐优先使用第一种,最简洁无额外开发成本:

方法1:直接使用相对路径(最优方案)

在__layout.svelte中写不带开头斜杠/的相对路径即可,SvelteKit会自动基于当前layout所属的父路由路径拼接完整跳转地址:

<a href="blogs">All Blogs</a>
<a href="new">Create New Blog</a>

这个方案后续你把blog文件夹重命名为posts时,不需要修改任何链接代码,所有跳转地址会自动适配为/posts/blogs、/posts/new。

方法2:通过$page store动态获取当前路径

如果有更复杂的路径拼接逻辑,可以调用SvelteKit内置的$page store获取当前路由路径后手动拼接:

  1. 首先在脚本部分导入store:
<script>
import { page } from '$app/stores'
</script>
  1. 模板中拼接路径,注意处理尾斜杠避免出现双斜杠异常:
<a href={`${$page.url.pathname.replace(/\/$/, '')}/blogs`}>All Blogs</a>
<a href={`${$page.url.pathname.replace(/\/$/, '')}/new`}>Create New Blog</a>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:05