The*_*heo 21 redirect svelte sveltekit
我有一个页面,其中包含从 SvelteKit 商店呈现的内容。如果商店无效,则需要将用户重定向到主页。不幸的是,即使不检查任何条件,我也找不到重定向用户的方法,所以让我们关注一个更简单的问题:如何始终从某个页面重定向到主页?
我尝试过以下方法,但这些方法都不适合我:
<script context="module">before script标签如下:<script context="module">
export async function load() {
return {
status: 302,
redirect: "/"
};
}
</script>
Run Code Online (Sandbox Code Playgroud)
/** @type {import('./$types').PageLoad} */
export function load() {
return {
status: 302,
redirect: '/'
};
}
Run Code Online (Sandbox Code Playgroud)
当我使用上面提到的代码时,网站的工作方式就像没有任何更改一样,我没有收到任何错误,但重定向不会发生。如果我意外地到达该页面(在搜索栏中输入其地址,商店尚未准备好),我会被重定向到错误页面,因为发生了错误(我想通过主页重定向来防止)。如果我按预期到达该页面(商店很好),则页面会正常呈现,不会发生重定向。
H.B*_*.B. 37
请参阅SvelteKit 重定向文档。
import { redirect } from '@sveltejs/kit';
export function load() {
// ...
redirect(302, '/'); // needs `throw` in v1
}
Run Code Online (Sandbox Code Playgroud)
在页面上,人们会使用goto.
小智 15
根据文档页面,您将使用goto(theurl)。例子:
import { goto } from '$app/navigation';
// ...Your other imports
goto('/redirectpage');
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢使用本机方法,那么在文件.svelte中您可以这样做,
如果您不使用SSR,那么:
window.location.href = '/redirectpage';
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是SSR,那么:
import { browser } from '$app/environment';
// ...Your other imports
if (browser) { // to prevent error window is not defined, because it's SSR
window.location.href = '/redirectpage';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44067 次 |
| 最近记录: |