「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」
小插曲
最近在梳理Coding的项目,顺便整理一下一些静态资源网站迁移过程的内容,在2021年末官方已经关闭了Coding网站托管服务的使用入口,具体说明参考官方内容,通过腾讯云 Serverless 控制台进行部署(也就是说项目相关代码仓库通过CODING进行管理,而应用部署通过腾讯云Serverless控制台进行管理,存量的站点不会受到影响,可继续使用源代码仓库的CI功能部署)
此处可通过云开发 Webify新增站点,可选择github发布仓库或者直接引入Coding(如果是源码仓库则选择模板进行构建,如果是发布仓库则视为静态资源进行构建无需配置)
导入完成则待其自动部署(可在应用详情->应用设置->仓库信息中查看自动部署相关配置),CDN配置需要一段时间生效,待成功后可通过其提供的应用域名进行访问
随后绑定域名、在DNSPOD处解析后即可访问,可参考官方文档指示
应用设置->自定义域名配置->添加绑定的域名信息和内容(如果用腾讯云购买域名备案则可直接关联绑定)
验证域名所有权:进入DNSPOD解析域名,我选择的是CNAME方式(值可参考上述操作生成的CNAME配置即可),但刷新没有看到状态值(可能是显示问题,可查看通过F12窗口查看返回的数据)
网站嵌入
新版本实现策略
通过云开发 Webify管理站点,其可直接引入Git相关网站
如果网站访问格式是直接通过域名访问(没有子级目录):区分两种实现
源码仓库和发布仓库分离:直接绑定发布仓库监听发布分支,选择静态资源构建无需任何指令操作
源码&发布仓库一体:绑定仓库监听发布分支,以hexo为例,可以选择hexo模板构建
针对构建子目录访问的情况(例如你的访问结构是域名/xxx目录)可参考上述Vercel部署资源404的问题说明。因为通过实践(通过发布仓库绑定),目前没有看到配置项可调整输出目录结构,所以可以考虑直接采用一个对外仓库作为中转,将要发布的内容作为子应用嵌入到里面,使得静态资源可以正常访问(这种情况的话其流程为:发布目录更新->触发copycat推送内容到对外仓库->只需要部署对外仓库即可任意访问所需资源)
旧版本实现策略
<1>构建参考
本地电脑部署
- 通过hexo deploy方式构建
# 步骤说明(针对一个客户端上已有github ssh的情况,需要额外配置)
1.Git bash生成ssh-key
输入指令: ssh-keygen -t rsa -C "xxx@XXX.com"
PS:如果之前已经使用生成访问github所需的密钥对则可直接沿用,如果需要构建多个SSH访问则可参考下述配置
# 如果需要同时使用多个ssh访问则需参考下述内容,如果只使用coding的话直接跳转步骤2进行配置
- 如果是同时使用GitHub、Coding这一类的内容,最好区分文件保存密钥对,例如id_ras_coding)
随后根据提示在目录找到相关的id_ras_coding.pub、id_ras_coding文件
- a.让ssh在本机生效(注意区分文件分隔符为/)
依次输入指令eval `ssh-agent`、ssh-add "私钥的绝对路径"(例如ssh-add "/c/Users/xxx/.ssh/id_rsa_coding")
- b.创建config文件,添加下述内容(git bash下直接输入vim config),随后保存
-------------------------------------------------------
#coding
Host coding.net
HostName git.coding.net
User git
# IdentityFile路径对应指向你的私钥生效的路径
IdentityFile /c/Users/xxx/.ssh/id_rsa_coding
-------------------------------------------------------
2.在Coding->个人设置->配置SSH公钥->新增公钥,填充id_rsa.pub公钥文件内容
3.通过ssh -T git@e.coding.NET或者ssh -T git@coding.net测试SSH公钥是否添加成功
(ssh -o StrictHostKeyChecking=no root@coding.net)
- 如果提示22端口连接超时,说明端口屏蔽了22则使用443端口访问尝试
ssh -T -p 443 git@git-ssh.coding.net
- 如果响应正常则提示如下所示
---—————————————————————————————————————————————————————————————————————————————
Coding 提示: Hello xxx, You’ve connected to Coding.net via SSH. This is a personal key.
clearlight,你好,你已经通过 SSH 协议认证 Coding.net 服务,这是一个个人公钥.
公钥指纹:xx:xx:xx:xx:xx:xx:xx
————————————————————————————————————————————————————————————————————————————————
4.新建Coding项目(参考官方文档构建项目即可),随后在hexo项目的主配置文件_config.yml文件中配置deploy属性
————————————————————————————————————————————————————————————————————————————————
# 方式1: 使用hexo默认的分支
deploy:
type: git
repository:
github: git@github.com:用户名/仓库名.git # 默认gh-pages
coding: git@e.coding.net:用户名/仓库名.git
# 方式2:使用自定义分支
deploy:
- type: git
repository: git@github.com:holic-x/wv-blog.git
branch: release # gh-pages
- type: git
repository: git@e.coding.net:用户名/仓库名.git
branch: master
————————————————————————————————————————————————————————————————————————————————
- 配置完成,执行hexo三连进行发布测试
CI构建
- CI构建所需的配置和本地概念差不多,相应需要结合Github Actions所需参数配置相应的访问权限
<2>项目跟踪
上述配置完成,则可登录Coding控制台查看代码更新情况
查看项目->左侧导航栏下方项目设置->功能开关,开启持续集成和持续部署开关
随后可通过持续部署进行静态资源网站管理(2021年末已启动新策略,需借助Servless或者Webify进行托管)