使用自定义域将 SvelteKit 应用部署到 GitHub Pages(放弃 GoDaddy 转而使用 Porkbun)
现在是 2023 年,我被解雇了,我需要一个作品集网站来证明我懂行。我在 Figma 中勾勒出了一个设计草图,但却分心在地下室建造桑拿房。剧透:桑拿房比网站先完工。
时间飞快——我找到了新工作,但作品集模拟却积满灰尘。八个月后,我终于用 Svelte 完成了网站,Svelte 是一个闪亮的新框架,具有我喜欢的语法。但部署它?使用 GoDaddy。花了几个小时处理 DNS 设置,并学习购买和配置 SSL 证书,这让我很沮丧。就在那时,我发现了 Porkbun——透明的定价、免费的 SSL 和轻松的设置。
现在,让我一步一步地向您展示如何让您的 Svelte 应用程序上线,而无需我忍受的麻烦。
步骤 1:安装静态适配器
SvelteKit 提供各种针对不同部署设置的适配器 - Node.js 服务器、无服务器平台、边缘功能等。您选择的适配器决定了您的应用的部署方式。对于 GitHub Pages,我们将使用 @sveltejs/adapter-static,它是静态站点托管的理想选择。
将其安装为开发依赖项:
pnpm add -D @sveltejs/adapter-static
使用此适配器,您的应用将在构建过程中预渲染为静态文件,随时可以上线。简单又有效!
第 2 步:配置静态适配器
首先将新安装的包导入到 svelte.config.js 文件中。接下来,添加下面提供的默认配置。您可以随意调整它以满足您的需求,并参阅 adapter-static 文档了解更多详细信息。
import adapter from '@sveltejs/adapter-static'; import { sveltePreprocess } from 'svelte-preprocess'; export default { preprocess: sveltePreprocess({ ...sveltePreprocess() }), kit: { adapter: adapter({ // default options are shown. On some platforms // these options are set automatically - see below pages: 'build', assets: 'build', fallback: 'index.html', precompress: false, strict: true }) }, };
最后,运行构建命令并确认项目的输出位于构建文件夹中:
pnpm build
步骤 3:使用 GitHub Actions 进行免手动部署
在项目根目录下添加一个 .github/workflows 文件夹,并在其中创建一个 deploy.yml 文件。此文件告诉 GitHub Actions 如何处理应用程序的部署。这是一个示例配置 - 请务必根据您使用的包管理器进行调整:
name: Deploy to GitHub Pages on: push: branches: - main jobs: build_site: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install pnpm uses: pnpm/action-setup@v3 with: version: 8 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - name: Install dependencies run: pnpm install - name: Build env: BASE_PATH: '/${{ github.event.repository.name }}' run: pnpm run build - name: Upload Artifacts uses: actions/upload-pages-artifact@v3 with: # This should match the `pages` option in your adapter-static configuration path: 'build/' deploy: needs: build_site runs-on: ubuntu-latest permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy id: deployment uses: actions/deploy-pages@v4
完成此操作后,每次你将更改推送到主分支时,GitHub 都会自动部署你的应用。你可以通过访问 GitHub Pages 默认 URL 来验证部署情况,该 URL 通常是:
https://.github.io/
步骤 4:Porkbun 取代 GoDaddy — DNS 设置变得简单
前往 Porkbun 购买域名。您可以随意添加任何您想要的附加功能 — 我选择了最基本的选项,价格为 38.55 美元。
接下来,转到您的域名管理页面。将鼠标悬停在您的域名行上,您将看到 DNS 文本出现 - 单击它以打开设置模式(请参阅屏幕截图以供参考)。

打开模式后,向下滚动到快速 DNS 配置部分并选择 GitHub。这将自动填充部署所需的 DNS 记录,为您节省一小时的设置时间,并免去您担心 SSL 证书配置的麻烦 — 与 GoDaddy 不同。

第五步:Github页面设置
最后一步是更新您的 GitHub Pages 设置并将其指向您的自定义域。转到您的存储库的设置页面并导航到 Pages 部分。确保部署源设置为 GitHub Actions(因为这就是我们设置部署的方式)。
接下来,将您的自定义域粘贴到自定义域输入字段并保存更改。 GitHub 将开始验证您的域并设置 SSL 证书。 这可能需要一些时间,您可能需要刷新或重试以使强制 HTTPS 复选框可用。

验证完所有内容后,您的应用将在您的自定义域中上线。恭喜您 — 您已正式部署了 Svelte 应用!🎉
想要查看实际示例吗?请访问我的网站并告诉我您的想法!