如何在svelte/sapper组件中link相对于当前页面?

How to link relative to current page in svelte/sapper component?

我在带有分页的 sapper 模板中有一个组件。目前所有链接的行为都好像它们是相对于根目录(在本例中为 localhost:3000/),无论 href 的形式是 page 还是 /page,(我什至尝试过 ./page.)

因此对于我只想修改查询字符串的分页,我必须将当前视图的完整路径传递到 href 的组件中,这有点麻烦。相对链接不起作用是我做错了什么吗? (如果有办法让它们直接调用 goto() 就更好了,我有一个 "Goto page: [x]" 输入。)如果没有,是否有推荐的方法从组件内部获取当前路径,所以我可以把它扔到分页组件中吗?

目前,Sapper 不支持相对链接。

获取当前路径的最佳方法是使用 window.location.href,只有在安装组件后才可用。

这是一个已知问题(“Update to reflect current route?”),已于 2020 年 5 月 4 日移至 "In Discussion / RFC Proposal":

"At present, is the same for all pages, which means you can't use relative URLs. This was introduced for good reasons, but it turns out to cause problems."

如果您的页面是 http://localhost:3000/product/foo,实际上是可行的解决方法 通常 在您的 foo.svelte 文件中 link 到本地页面应该是这样的:

<a href="#anchor"> link to same page </a>

但在 sapper 中,您必须将页面放在完整路径中:

    <a href="product/foo#anchor"> link to same page </a>

测试于: “工兵”:“^0.28.10”, “苗条”:“^3.29.4”