背景
事件起因就是一个我的读书笔记项目了,这里欢迎大家来访问的我的读书笔记!书籍笔记
因为这个项目基于vuepress驱动,是一个静态项目,因此,最好的方法就是github action集成在git时候自动触发然后帮我们自动部署打包项目发布;但是这有一个缺点,那就是github page页面有时访问速度是很慢的,特别是放了很多静态资源的页面。那么?有啥子比较好的办法么?必须有
方法
思路一
可以考虑用git的钩子实现。大概逻辑是:提交代码到git,git打标签的时候触发钩子从而打包、部署。这样子做坏处是服务器要安装gitlab(钩子嘛),maven。然后gitlab占用内存其实是很大的,最少也是4g起步,一般个人服务器也就是4g,所以不太可行
思路二
shell文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#!/usr/bin/env sh # 确保脚本抛出遇到的错误 set -e # 生成静态文件 npm run build # 进入生成的文件夹 cd docs/.vuepress/dist # deploy to github echo 'booknote.jiangkk.com' > CNAME # 判断本地是否有token变量,有则是github自动部署 没有则是本地推送到仓库 if [ -z "$GITHUB_TOKEN" ]; then msg='deploy' githubUrl=git@github.com:feijiang00/code-learn.git else msg='来自github actions的自动部署' githubUrl=https://feijiang00:${GITHUB_TOKEN}@github.com/feijiang00/booknote.git git config --global user.name "feijiang00" git config --global user.email "postmaster@jiangkk.top" fi git init git add -A git commit -m "${msg}" git push -f $githubUrl master:gh-pages # 推送到github cd - # 退回开始所在目录 rm -rf docs/.vuepress/dist |
bat文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@echo off set localPath=D:\demo.txt set host=-- set prot=21 set username=-- set password=-- set remotePath=/temp/ echo open %host% %prot%>>temp.txt echo %username%>>temp.txt echo %password%>>temp.txt echo cd %remotePath%>temp.txt echo binary>>temp.txt echo put %localPath%>>temp.txt echo bye>>temp.txt ftp -n -s:temp.txt pause |
然后windows设置定时任务即可定时运行这两个脚本文件,完成自动打包上传到linux服务器,别忘记了linux上要开启ftp服务。因为上传的是文件夹dist.zip,因此需要解析到negix目录下,这里linux服务器上写一个定时解压的脚本即可。
最后
最后,我们只需要本地编辑md文件,然后自动化帮助我们自动更新打包部署,针对静态网站的好处是,其除了打开快,还有就是并发支持高,nginx的并发是几十万,我们服务器的带宽是触碰不到这个层面的,因此这里影响并发最大的因素就是服务器的带宽和内存。
感慨
差不多半年没有更新博客,上次还是实习的时候,后续我也重新换了家公司,这已经是入职的第二个月了;后面可能我安卓接触的比较多,会多更新一些安卓方面的知识,冲冲冲,兄弟们
ps
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=frng879nago3