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

如何将使用adapter-static的SvelteKit项目部署到GitHub Pages?

SvelteKit 部署 GitHub Pages 静态资源404解决方案

你遗漏的核心必要配置是kit.paths.base路径前缀配置,这是部署到GitHub Pages非根域名项目页的必填项。

核心配置修正

如果你的站点访问地址是https://<GitHub用户名>.github.io/<仓库名>/格式(即非<用户名>.github.io根域名站点的普通项目托管),需要在svelte.config.js的kit配置块中补充路径前缀配置,其他原有配置可以保留:

import adapter from '@sveltejs/adapter-static';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    kit: {
        adapter: adapter({
            pages: 'build',
            assets: 'build',
            fallback: null,
            precompress: false
        }),
        // 补充paths配置,生产环境自动匹配仓库名前缀,开发环境保持根路径
        paths: {
            base: process.env.NODE_ENV === 'production' ? '/你的仓库名' : ''
        },
        appDir: 'app',
        prerender: {
            default: true,
        },
        trailingSlash: 'always',
    }
};

export default config;

配置原理

本地执行preview命令时,站点默认运行在服务器根路径/下,所有静态资源引用路径都是/app/xxx.js、/app/xxx.css格式,所以本地访问完全正常。但部署到GitHub Pages项目页时,站点的实际根路径是/你的仓库名/,浏览器请求根路径下的资源自然会返回404。添加paths.base配置后,生产构建时SvelteKit会自动给所有资源引用、页面跳转路径加上对应前缀,匹配GitHub Pages的实际访问路径。

其他注意事项

  • .nojekyll文件需要放在构建输出的build目录根下才会生效,不需要手动在构建后复制,直接在项目源码的static目录下创建空的.nojekyll文件即可,SvelteKit构建时会自动将static目录下的所有文件原样复制到输出目录。
  • 配置.nojekyll后可以将appDir改回默认值_app,GitHub Pages检测到该文件后会跳过Jekyll处理,不会拦截下划线开头的目录资源。
  • 本地验证部署效果时,可以执行带base参数的预览命令模拟线上路径:npm run preview -- --base /你的仓库名,该环境下访问正常则部署后不会出现资源路径问题。

内容的提问来源于stack exchange,提问作者Corrl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:15:45