首页 > 解决方案 > 子目录的 Sveltekit 基本 URL 抛出 404

问题描述

我需要一些了解才能从子目录中提供 Sveltekit 应用程序。我的公司将从一个名为/activ. 我认为更新适当的路径很容易,如下所示:

svelte.config.js:

kit: {
  ...
  paths: {
    base: "/activ"
  },
  adapter: adapter({
    fallback: 'index.html' // render as SPA
  }),
}

路线/index.svelte:

<svelte:head>
  <base href="/activ">
</svelte:head>

当我npm run build将构建复制到服务器上的子目录时,应用程序会按预期加载和运行。

但是,当我尝试从 dev (localhost:3000) 提供服务时,我收到以下错误:

http://localhost:3000

Not Found

http://localhost:3000/activ(子目录和基本 URL 是什么)

404
Not found: 
Error: Not found: 
    at resolve (file:///Users/tomdoe/Sites/__playground/sveltekit-app/node_modules/@sveltejs/kit/dist/ssr.js:1728:13)
    at async respond (file:///Users/tomdoe/Sites/__playground/sveltekit-app/node_modules/@sveltejs/kit/dist/ssr.js:1676:10)
    at async Immediate.<anonymous> (file:///Users/tomdoe/Sites/__playground/sveltekit-app/node_modules/@sveltejs/kit/dist/chunks/index.js:3484:22)

似乎我不明白从 dev(localhost)提供服务时如何模仿子目录。很感谢任何形式的帮助!

标签: sveltesveltekit

解决方案


你应该添加

rel="external"

阅读以下内容。

https://kit.svelte.dev/docs#anchor-options-rel-external


推荐阅读