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

自定义目录结构SvelteKit项目中Sveltia CMS OAuth认证后/admin路由404求助

解决SvelteKit集成Sveltia CMS OAuth认证后/admin路由404问题

1. 检查SvelteKit的路由与路径配置

由于项目使用自定义网站目录/site/htdocs,需确保SvelteKit正确识别该路径作为资源与路由根目录:

  • 在svelte.config.js中通过kit.paths指定基础路径:
    export default {
      kit: {
        paths: {
          base: '/site/htdocs',
        },
      },
    };
    
  • 确认/admin路由组件位置正确:若用Sveltia嵌入模式,需在src/routes/admin/+page.svelte中添加CMS入口代码:
    <script>
      import { mountCMS } from '@sveltia/cms';
      import config from '../../sveltia.config.yml?raw';
    
      let container;
    
      async function initCMS() {
        await mountCMS(container, { config });
      }
    
      $: if (container) initCMS();
    </script>
    
    <div bind:this={container} />
    

2. 修正OAuth回调URL与Sveltia CMS配置

  • GitHub OAuth回调URL:必须包含完整网站路径前缀,即https://你的域名/site/htdocs/admin/auth/callback,而非仅/admin/auth/callback。
  • Sveltia CMS config.yml:更新site_url、base_url及认证回调地址,匹配实际路径:
    site_url: https://你的域名/site/htdocs
    base_url: /site/htdocs/admin
    auth:
      provider: github
      callback_url: https://你的域名/site/htdocs/admin/auth/callback
    

3. 验证SvelteKit适配器的静态资源输出

若使用静态适配器(如@sveltejs/adapter-static),确保适配器配置指向正确输出目录:

export default {
  kit: {
    adapter: adapter({
      pages: 'site/htdocs',
      assets: 'site/htdocs',
    }),
  },
};

编译后的静态文件将直接输出到/site/htdocs,保证/admin路径资源可被正确访问。

4. 排查重定向路径问题

OAuth认证完成后,若重定向路径不匹配会触发404:

  • 打开浏览器开发者工具查看网络请求,确认认证后的重定向URL包含/site/htdocs/admin前缀。
  • 若路径缺失前缀,在Sveltia初始化代码中手动指定basePath参数:
    await mountCMS(container, { config, basePath: '/site/htdocs/admin' });
    

内容的提问来源于stack exchange,提问作者Nguyễn QuangNguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:13:10