SvelteKit 路由不起作用(“/src/routes/about/+page.svelte”未映射到“/about”)

问题描述 投票:0回答:1

我对 sveltkit 很陌生。刚刚关注的

supabase-svelte
应用程序引用了此链接。正如它所说,supabased 示例效果很好。

现在我尝试了其他方法,例如路由参考官方文档。这看起来很简单,但对我来说不起作用。

这是我的src结构

enter image description here

+page.svelte

<h1>About this site</h1>
<p>TODO...</p>
<a href="/">Home</a>

当我访问

http://localhost:5173/about
时,它似乎只是主要
App.svelte

这是我的

App.svelte
,与
supabase-svelte
应用程序相同。

<script lang="ts">
    import { onMount } from 'svelte'
    import { supabase } from './supabaseClient'
    import type { AuthSession } from '@supabase/supabase-js'
    import Account from './lib/Account.svelte'
    import Auth from './lib/Auth.svelte'
  
    let session: AuthSession | null
  
    onMount(() => {
      supabase.auth.getSession().then(({ data }) => {
        session = data.session
      })
  
      supabase.auth.onAuthStateChange((_event, _session) => {
        session = _session
      })
    })
  </script>
  
  <div class="container" style="padding: 50px 0 100px 0">
    {#if !session}
    <Auth />
    {:else}
    <Account {session} />
    {/if}
  </div>

我用谷歌搜索了很多,但找不到任何有用的东西..

svelte sveltekit
1个回答
0
投票

链接的指南不会创建 SvelteKit 应用程序,而是创建基本的 Vite + Svelte 项目。 IE。没有路由,只有嵌套组件(因此 SvelteKit 中不存在

App.svelte
)。

可以从实际的 SvelteKit 项目(可以通过

sv
CLI 创建)开始,也可以在事后添加必要的包和配置。

您将需要各种套餐:

  • @sveltejs/adapter-auto
    (默认适配器,可根据部署目标进行交换)
  • @sveltejs/kit
  • @sveltejs/vite-plugin-svelte

A

svelte.config.js
沿着这些思路:

// import adapter from '@sveltejs/adapter-node';
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    // for e.g. SCSS support in style tags
    preprocess: vitePreprocess(),
    kit: {
        adapter: adapter()
    }
};

export default config;

并且需要在

vite.config.js
/
ts
中添加SvelteKit插件:

import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';

export default defineConfig((cfg) => ({
  plugins: [
    sveltekit(),
  ],
}));
© www.soinside.com 2019 - 2024. All rights reserved.