作品部署

前端
部署
作者

yangjh

发布日期

2023年7月16日

作品部署是作品开发中的一个关键阶段,它涉及将一个产品从开发环境转移到生产环境,使其可以供最终用户使用。部署过程通常包括了配置、安装、测试等步骤,以确保产品能够在目标环境中正常运行。

常规部署

不需要依赖后端服务器进行动态处理,由HTML、CSS、JavaScript等静态资源组成的作品,通常叫做静态网站,静态网站的部署相对简单,一般可以通过以下步骤进行:

  1. 编写网站:编写网站所需的HTML、CSS、JavaScript等静态文件。
  2. 部署到服务器:将编写好的网站文件上传到服务器上,可以使用FTP工具进行上传,或者使用git之类的工具上传。
  3. 配置域名和DNS:将网站域名绑定到服务器IP地址上,并在DNS管理后台进行相应的解析配置。
  4. 配置Web服务器:在Web服务器上配置网站,一般可以使用Nginx、Apache等Web服务器软件进行配置。
  5. 配置SSL证书:为了保证网站的安全性,可以为网站配置SSL证书,使网站使用HTTPS协议进行访问。
  6. 测试网站:通过访问网站,测试网站是否正常运行,并根据需要进行调整和优化。

需要注意的是,静态网站不支持动态页面和数据库交互等功能,如果需要实现这些功能,需要使用后端服务器进行开发。此外,静态网站也需要进行定期的更新和维护,保证网站的正常运行和安全性。

使用Github Pages进行部署

Github网站可能存在网络环境不稳定、无法访问或超时的问题。

  1. 在使用 Github Pages 服务之前,需要注册 Github 账号,并创建仓库,确保仓库根目录下或者./docs存在index.html文件。
  2. 进入仓库设置页面,选择仓库分支,开启 Pages 服务。
  3. Github Pages 需要在 Github 仓库的根目录或者./docs目录下,存在index.html页面,然后启动Pages服务即可。

之后,当仓库内容发生改动时,Github会自动重新部署网站内容。Github Pages 服务还允许自定义域名。

Github Pages 服务的优点在于操作便捷,自动更新,缺点是在国内访问是速度受限。

使用Gitee.com的Pages进行部署

Gitee.com提供了类似与Github Pages的服务,但需要用户仓库为公开,且还要通过实名认证。Gitee.com的Pages服务免费版无法自动更新,需要用户手工重新部署。

尽管 Gitee.com 存在一些不便,但由于其服务器位于国内,因此拥有访问速度快的优势。值得一提的是,Gitee.com 是国内最大的 Git 代码托管平台之一,提供了丰富的功能和工具,例如团队协作、版本控制、CI/CD 自动化构建等。此外,Gitee.com 还拥有完善的中文文档和技术支持,方便用户快速上手并解决问题。虽然有一些不足之处,但总体来说,Gitee.com 在国内开发者中颇受欢迎,并为他们带来了很多便利。

截止目前(2023年),Gitee提供的pages服务的内容审查工作非常严格,对开发者很不友好。

使用OSS的静态页面托管服务进行部署

使用OSS的静态页面托管服务,是非常不错的部署方案,详见使用OSS托管静态网站

使用Github Actions自动化部署内容到OSS

使用OSS的静态页面托管服务时,需要人工或借助代码将文件复制或更新到存储空间,大多数情况下,不是很方便。因此,可借助于Github Actions服务,实现内容修改后自动化部署到OSS。

原理图如下:

flowchart LR
   A[本地内容] -- Git push --> B[Github 仓库] -- Github Actions --> C[OSS]

Actions的脚本可参考下面内容:

name: deploy to aliyun oss

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # 获取最新代码
      - uses: actions/checkout@v1
      # 设置阿里云OSS的 id/secret,存储到 github 的 secrets 中
      - name: setup aliyun oss
        uses: manyuanrong/setup-ossutil@master
        with:
          endpoint: oss-ap-southeast-1.aliyuncs.com
          access-key-id: ${{ secrets.OSS_KEY_ID }}
          access-key-secret: ${{ secrets.OSS_KEY_SECRET }}
      # 同步静态文件到aliyun OSS
      - name: cp files to aliyun
        run: ossutil sync website/docs/ oss://yangzh-cn/ -u --delete

这样,用户将内容推送到Github的仓库时,可出发Github Action运行指定脚本,进而实现自动化部署。

参考文献

  1. Gitee.com Pages
  2. https://docs.github.com/zh/actions
  3. https://pages.github.com/
回到顶部