2315 字
12 分钟
博客部署上线

1. 建立代码仓库,上传代码#

1.1 选择代码仓库#

​ 首先需要建立一个代码仓库,上传博客代码。常见的代码仓库有GiteeGitHub,考虑国内的法律监管风险以及Gitee已经在国内停止提供Pages服务,还是按照常规做法,GitHub建立代码仓库,上传源代码。

1.2 给代码仓库命名#

​ 考虑到GitHub Pages服务的默认启动目录,需要将代码仓库名称直接命名为<username>.github.io的形式username为GitHub账户的用户名。

1.3 修改astro.config.mjs#

​ 把根目录下astro.config.mjs中的site字段更新为https://<username>.github.iobase字段依然保持为/,依照这种设定, 开发环境(pnpm dev生产环境(pnpm build 的调试结果就可以保持一致。

1.4 新增gitignore文件#

​ 由于在开发过程中,需要使用pnpm install创建开发环境、使用pnpm devpnpm build进行本地调试,而这些命令产生的内容不必上传至代码仓库中,因此,需要在根目录下创建.gitignore文件,以便在提交代码时,忽略无需上传的内容。

Terminal window
# ./gitignore文件内容
node_modules/
dist/

2. 博客部署至GitHub Pages#

​ 使用GitHub Actions功能,提前设计用于构建的工作流,在代码提交之后,就可以自动完成部署过程、实现将博客托管在GitHub Pages的操作。

2.1 创建workflows目录#

​ 在项目的.github目录下,创建workflows目录,用来存放Github Actions所需的工作流。

2.2 新增deploy.yml文件#

​ 在 .github/workflows/ 的目录里创建一个新文件deploy.yml,内容更新如下:

name: Deploy to GitHub Pages
on:
# 每次推送到 `main` 分支时触发这个“工作流程”
# 如果你使用了别的分支名,请按需将 `main` 替换成你的分支名
push:
branches: [ main ]
# 允许你在 GitHub 上的 Actions 标签中手动触发此“工作流程”
workflow_dispatch:
# 允许 job 克隆 repo 并创建一个 page deployment
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout your repository using git
uses: actions/checkout@v4
- name: Install, build, and upload your site
uses: withastro/action@v3
# with:
# path: . # 存储库中 Astro 项目的根位置。(可选)
# node-version: 20 # 用于构建站点的特定 Node.js 版本,默认为 20。(可选)
# package-manager: pnpm@latest # 应使用哪个 Node.js 包管理器来安装依赖项和构建站点。会根据存储库中的 lockfile 自动检测。(可选)
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

2.3 配置Actions功能#

​ 先在仓库项目Settings中将Build and deploymentsource改为Github Actions,启动Github Actions的功能,然后再在Actions里选择配置deploy.yml文件。

GitHubSettings

构建结果

​ 当一切设置完成后,GitHub Actions会在提交代码之后,自动触发部署流程,构建结果也会反馈在页面中。如果上述配置都运作正常,那么GitHub Actions会反馈success的结果,并且博客也会自动部署GitHub Pages服务上,可以通过<username>.github.io进行访问了。

GitHubActions

3. 博客部署至EdgeOne Pages#

​ 由于GitHub服务器在境外,经常会发生服务器不稳定的情况,导致博客站点打开速度较慢影响浏览体验,因此推荐将博客部署在其他服务器上,如CloudFlareNetifyEdgeOne等,这里就EdgeOne方案予以说明,其他方案与其类似。

3.1 EdgeOne Pages介绍#

概述#

EdgeOne Pages是基于腾讯云基础设施打造的边缘安全加速平台,专为现代Web开发设计,帮助开发者快速构建、部署静态站点无服务器应用

适用场景#

  • 静态与动态网站托管:适合使用静态生成器,如Next.jsHexoAstro等构建的网站,以及使用ReactVue等现代前端框架构建的单页应用。

  • 构建部署自动化:通过GitHubGitee等代码管理平台集成,在每次代码提交时自动构建和部署网站,简化开发部署流程,提升研发效率。

3.2 EdgeOne账号注册#

EdgeOne国内版国际版之分,基础功能相同:DDoS防护Web应用防火墙内容分发网络智能加速等,主要区别在于费用结算ICP备案账号注册网站访问速度等:

  • 费用结算

    • 国内版:使用人民币结算
    • 国际版:使用美元结算
  • ICP备案

    • 国内版:必须实名认证ICP备案,才能对外开放使用,而ICP备案需要强制购买云服务器才能申请
    • 国际版:可以不用实名认证ICP备案,就可以对外开放使用
  • 账号注册网站

  • 访问速度

    • 国内版:全球可访问,国内网络访问流畅,但只能使用3小时有效的免费域名,如果要用自定义域名,必须实名认证网络备案
    • 国际版:全球可访问,国内网络访问速度不及专线访问速度,但比cloudflare、netify、GitHub服务快,虽然也只能使用3小时有效的免费域名,但是支持不必网络备案自定义域名

​ 基于部署易用性审查机制成本最小化考量,选择 国际版 进行账号注册和使用。

​ 国际版账号注册后,可以免费领取四个加速计划,只要参与活动分享X平台Facebook平台就行:点击链接即可,不用关心是否分享成功。

EdgeOne免费套餐

EdgeOne免费套餐

3.3 EdgeOne Pages部署Astro博客#

​ EdgeOne Pages目前支持GithubGiteeCNBgit提供商的接入。

导入Git仓库#

  • 接入git供应商:在控制台页面,选择git提供商进行接入,此处以GitHub为例。

EdgeOne博客部署

  • 授权访问:授予EdgeOne访问仓库的权限

EdgeOne博客部署

  • 选择仓库:选择需要部署的仓库或者授权所有仓库

EdgeOne博客部署

填写构建配置#

关键

这一步骤对于项目能否正确编译顺利部署至关重要

  • 选择需要部署的仓库

EdgeOne博客部署

  • 确认构建配置项,确认无误后开始部署
  • 项目名称可依照规则,自行命名。
    • 构建设置使用默认的Astro方案即可,无需更改。
提醒

只有全球可用区(不含中国大陆)支持不用网络备案自定义域名

EdgeOne博客部署

查看部署状态#

  • 构建部署中可以查看详细的部署状态

EdgeOne博客部署

  • 构建部署中选择预览,可以查看项目部署后的展示效果
提醒

预览效果只提供3小时的限时免费预览,如需长期访问,需要绑定自定义域名

EdgeOne博客部署

4. 购买自定义域名#

​ 可以在阿里云腾讯云AWScloudflarespaceship等网站购买域名,这里以在spaceship上购买域名为例进行介绍。

4.1 搜索域名#

提醒

如果要在国内备案,请优先选用常见的后缀名,如.com.net.xyz.site等。使用小众的后缀名,有一定概率无法通过国内备案流程。

spaceship

4.2 对比价格#

  • 横向对比各家网站同一域名给出的价格,货比三家,择优选购
  • 纵向考虑是否有必要存续更长的时间,一般新域名首年新用户首单都会有划算的价格,但之后域名续费的价格较高,需谨慎考虑
提醒

多数情况下,域名购买后不予退款下单需谨慎

spaceship

4.3 购买完成#

  • 可以在域名管理器里查看已经购买的域名

spaceship

5. 将自定义域名配置到EdgeOne Pages#

5.1 在EdgeOne增加自定义域名#

  • EdgeOnepages服务中选择部署成功的项目,然后进入项目设置页面,选择添加自定义域名

自定义域名配置

  • 在弹出的页面中输入自定义域名,如www.shadowchencsd.blog,点击下一步

自定义域名配置

  • 在弹出的页面中,复制记录值,以用于在spaceship配置CNAME

自定义域名配置

5.2 在spaceship配置CNAME#

  • spaceship中搜索高级DNS功能,选择购买的域名,进行CNAME配置

自定义域名配置

  • 自定义记录添加记录主机填写www,类型选择CNAME填写EdgeOne提供的记录值

自定义域名配置

5.3 在EdgeOne更新自定义域名#

  • spaceship页面等待DNS广播完成,直到广播图标出现

自定义域名配置

  • 切换至EdgeOne网站的项目设置处,此时新域名的DNS记录变为已设置状态,点击验证进行DNS记录验证

自定义域名配置

  • 验证通过后,EdgeOne自动申请免费的SSL证书,用于托管自定义域名网站

自定义域名配置

  • 等待证书申请完成后,就可以通过自定义域名访问博客站点

自定义域名配置

封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00