个人博客前端模板_腾讯前端开发工程师,教你极速搭建一个个人博客网站

作者: bookerzhao,腾讯 CSIG web前端开发工程师

Github 为开源项目提供了用于静态页面展示的 Pages 服务,很多开发者都在上面托管了自己的静态网站和博客,不少开源项目的案例和文档页面也采用了这种方式。不过由于 Pages 的 CDN 节点大部分在国外,在国内的访问速度不是很理想,不少开发者希望能提升网站在国内的访问速度和稳定性,今天会介绍如何配合 Github Action 的持续集成服务和 云开发 Github Action 扩展,自动部署到访问速度更快的云开发静态托管服务。

云开发静态托管是云开发提供的一种静态网站托管能力,静态资源(HTML、CSS、JavaScript、字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持。

f555cd429ec04246c2224139121a9dbd.png

云开发静态托管介绍

云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML、CSS、JavaScript、字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持。可以通过腾讯云控制台、命令行工具以及下面会提到的云开发 Github Action 进行管理部署。云开发提供了免费的二级域名(未绑定自定义域名时下行速度有限制),同时支持免费绑定开发者自己的自定义域名

首个环境可享受 1GB 容量和每月 5GB 流量的免费额度,对于访问量不是很大的个人博客应该足够了。如果流量大也没关系,计费是按照具体使用收费的按量付费方式,具体信息可以查看计费价格文档 https://cloud.tencent.com/product/wh/pricing

云开发静态托管部署的网站,还可以使用云开发的提供的一站式 Serverless 后端能力,例如云函数、云数据库、云存储、身份服务等。比如可以在静态托管的个人博客上面使用云函数和云数据库实现评论、留言板功能等,或者可以把博客的内容管理从原来的静态文件部署变为动态内容管理等,拓展的用法非常的多,开发者可以继续深入探索。

如何通过 Github Action 一键部署到云开发

下面演示如何将 Github 静态页面自动部署到云开发的静态托管,来获得稳定的访问速度和更多的扩展能力。

例如开发者的个人博客 Github 项目结构如下:

|-- src

|-- build

|-- README.md

希望将项目下 build 目录生成的静态网站代码部署到云开发这边开通的静态网站托管的根目录下。

编写 Github Action 文件

首先在项目目录配置如下的 Github Action 文件 .github/workflows/main.yml,如果已经配置过 Github Action 就不需要重新创建了,然后参考下面的配置填写。

on: [push] # push 代码时触发

jobs:

deploy:

runs-on: ubuntu-latest

name: Tencent Cloudbase Github Action Example

steps:

- name: Checkout

uses: actions/checkout@v2

# 使用云开发 Github Action 部署

- name: Deploy static to Tencent CloudBase

id: deployStatic

uses: TencentCloudBase/cloudbase-action@v1

with:

# 云开发的访问密钥 secretId 和 secretKey

secretId: ${{ secrets.SECRET_ID }}

secretKey: ${{ secrets.SECRET_KEY }}

# 云开发的环境id

envId: ${{ secrets.ENV_ID }}

# Github 项目静态文件的路径

staticSrcPath: build

可以看到配置中主要用到了 云开发 Github Action 扩展 TencentCloudBase/cloudbase-action@v1 来部署静态文件。

注意配置文件中参数部分的 secretId、secretKey 、envId属于敏感信息,需要放在项目的 secret 存储中,这里不用填写真实的值,只需要按照上面实例填写变量即可。

staticSrcPath 这里填写了静态网站构建产生的目录 build,如果想把静态资源部署到云端的某个子目录而不是根目录,可以再配置一个参数 staticDestPath 。

配置云开发访问信息

我们还需要在项目的 Secrets 中配置 SECRET_ID、SECRET_KEY、ENV_ID 这几个私密信息,下面是具体的配置方式。

首先要开通云开发静态网站,可以参考开通指南:https://docs.cloudbase.net/hosting/,开通环境后在云开发环境列表 页面即可得到环境ID ENV_ID ,然后在腾讯云 访问管理 页面可以配置一对 API 访问密钥,也就是SECRET_ID、SECRET_KEY。

然后在自己的 Github 项目内的 Setting/Secrets 里设置 SECRET_ID, SECRET_KEY, ENV_ID 信息即可。

dbb4b17a982ee2138118212c8dceb4c4.png

配置完之后就可以提交代码体验自动部署了,每次 git push Actions 都会自动运行,将项目的静态资源部署到自己的云开发静态托管环境,部署成功之后即可通过云开发提供的二级域名访问来自己的网站。

99dee4d5371fd52b73f75d4b802b1215.png

配置自定义域名

云开发提供的免费的二级域名下行速度有所限制,开发者最好绑定一个自己的域名,绑定域名是免费的,还可以在腾讯云配置一个免费的 SSL 证书,来通过 HTTPS 访问自己的网站。

自定义域名的方法可以参考这篇文档 https://docs.cloudbase.net/hosting/custom-domain.html

2b722f305d4770d48960634643e94f46.png

配置完成后,测试下部署在云开发静态托管的网站的访问速度,根据测速数据可以看到各地的访问速度都非常快。

a8fc5a3521b5fe443b5188a09412053f.png

更多扩展用法

云开发 Tencent CloudBase Github Action 这个扩展会 Github 项目自动部署到云开发环境,目前支持静态托管功能,后续会支持其他资源的部署,比如可以把用 Node JS 、 Java、PHP 等语言开发的服务端项目一键部署到云开发,来获得 Serverless 化的动态网站服务。或者自动化部署带有数据库、前端、后端的全栈应用

Tencent CloudBase Github Action 扩展市场地址:

https://github.com/marketplace/actions/tencent-cloudbase-github-action

Tencent CloudBase Github Action 代码开源地址:

https://github.com/TencentCloudBase/cloudbase-action

欢迎大家多多体验、Star 支持或者提交 Issue / Pull request 来参与贡献。

开发者扶持

云开发还推出了【9.9元静态网站托管包年赞助计划】。只要你是技术博客/技术站点,迁移至云开发静态网站托管服务后,即可申请该赞助计划。 申请方式链接: https://url.cn/5nFAtxq 静态网站托管产品介绍:https://cloud.tencent.com/product/wh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生时代 给予.NET的机会

.NET诞生于与Java的竞争,微软当年被罚款20亿美元。Java绝不仅仅是一种语言,它是COM的替代者!而COM恰恰是Windows的编程模型。而Java编程很多时候比C编程要容易的多,更致命的是他是跨平台的。微软所推行.NET战略,并且C#…

java实用教程——组件及事件处理——布局的一个小实例

import javax.swing.*; import java.awt.*;public class BasicComponentDemo {Frame frame new Frame("这里测试基本组件");//定义一个按钮Button ok new Button("确认");//定义一个复选框组CheckboxGroup cbg new CheckboxGroup();//定义一个单选框&am…

非极大值抑制_非极大值抑制(non-maximum suppression)

摘自https://blog.csdn.net/qq_38906523/article/details/80195119摘自https://blog.csdn.net/xiexu911/article/details/80609298非极大值抑制NMS在目标检测,定位等领域是一种被广泛使用的方法。对于目标具体位置定位过程,不管是使用sliding Window还是…

TIOBE12月榜单:Java重回第二,Python有望四连冠年度语言

喜欢就关注我们吧!文|白开水TIOBE 公布了 2020 年 12 月的编程语言排行榜。TIOBE 将在下个月公布 2020 年的年度编程语言,一年内排名率增长最高的编程语言将获得这一称号。目前,Python 以 1.90% 数据遥遥领先。其次分别是 C(0.71%…

excel怎么在柱状图上加超链_如何让你的年终总结更符合领导心意,高薪员工必备的excel技能...

临近年底了,好多人都在写年终总结了,惯有的模式就是写一写这一年都做了哪些工作,有什么成绩,未来将如何完善等等......但是如何反应自己一年以来的成绩呢,如果单单是以文字的形式表述怕是不能让领导满意,甚…

java实用教程——组件及事件处理——对话框(dialog)

对话框: import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.*; import java.awt.event.*;public class DialogDemo1 {public static void main(String[] args) {Frame frame new Frame("这里测试Dialog");Di…

Vue 凭什么成为 2020 年的一匹黑马

Vue 在前端开发中的火爆程度远超 React 和 Angular ,无论是 BAT 等大厂,还是小型初创公司,Vue 都有着广泛的应用,其相关技术原理也是面试的必考知识点。Vue 的优势太过明显:基于 HTML 的模板语法,响应式的更…

python——学习笔记1

推荐阅读: 爆肝十二万字《python从零到精通教程》 Python菜鸟教程 1.python 的输入输出: 输入:input() 输出:print() 输出不换行:print(x,end"") 数据要和字符串同时输出的时候需要将数据转化为字符串类…

开源C# Winform控件库《SunnyUI》强力推荐

本站(https://dotnet9.com)曾介绍过一款Winform开源控件库《HZHControls》,文章发布后不少朋友热情的咨询相关控件库信息,由此看来Winform在大家心中的地位还是挺高的。今天小编再分享一款新鲜出炉的 Winform 控件库库——SunnyUI,一起跟 Dot…

python——学习笔记2

python的数据结构 字符串: 字符串小写转大写: 字符串大写转小写: 删除空格: 空白是实际文本之前和/或之后的空间,通常您想删除这个空间。 strip()方法从开头或结尾删除任何空格: 替换字符串: replace()方…

庐山真面目之一 微服务的简介和技术栈

一、简介 这些年软件的设计规模越来越庞大,业务需求也越来越复杂,针对系统的性能、高吞吐率、高稳定性、高扩展等特性提出了更高的要求。可以说业务需求是软件架构能力的第一推动力,由于这些因素导致了软件架构思想和相关技术也在发生…

.net 读蓝牙数据_Linux内核曝严重蓝牙漏洞,影响多个版本

谷歌安全研究人员在Linux Kernel中发现了一组蓝牙漏洞(BleedingTooth),该漏洞可能允许攻击者进行零点击攻击,运行任意代码或访问敏感信息。BleedingTooth漏洞分别被命名为CVE-2020-12351,CVE-2020-12352和CVE-2020-24490。其中最严重的漏洞是…

python——学习笔记3

日期: Python 日期和时间 函数: python 传不可变对象实例

算法题目——电梯(HDU-1008)

题目链接&#xff1a;HDU-1008 上楼&#xff1a;输入俩楼层之差 * 6s 停留层的5s 下楼&#xff1a;输入俩楼层之差 * 4s 停留层的5s #include<iostream> #include<vector>using namespace std; int main() {vector<int> vec;//用于存储每次的楼层数 vector…

.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记

2.1 引入http协议web server && web application framework.net 与 .net core asp .net coreweb api 示例CS&#xff1a;客户端-服务器BS&#xff1a;浏览器-服务器2.1.1 http协议请求过程消息结构请求方法状态码header请求过程1.URL解析2.DNS查询3.TCP连接4.处理请求5…

spss因子分析结果解读_因子分析巴特利特球形度检验结果解读

因子分析时&#xff0c;一般根据KMO和巴特利特检验的结果来判断数据是否适合做因子分析。那么巴特利特检验结果如何解读呢&#xff1f;既然是假设检验&#xff0c;必定有原假设和备择假设&#xff0c;只需要搞清楚假设是什么&#xff0c;也就知道应该如何解读了。百度百科上是这…

算法题目——质量(POJ-1862)

题目链接&#xff1a;POJ-1862 再说一遍&#xff1a;STL大法好&#xff0c;贪心算法 优先队列(大根堆) #include<iostream> #include<queue> #include<math.h> using namespace std;int main() {priority_queue<float> pqueue;int n;cin>>n;fl…

理解 redis 中的 集合对象类型

这篇我们来看看Redis五大类型中的第四大类型&#xff1a;集合类型&#xff0c;集合类型还是蛮有意思的&#xff0c;第一个是因为它算是只使用key的Dictionary简易版&#xff0c;这样说来的话&#xff0c;它就比Dictionary节省很多内存消耗&#xff0c;第二个是因为它和C#中的Ha…

评估服务基础性能应该参考那些指标?

当谈到网络服务性能的时候&#xff0c;很多人都会采用一些单一性的指标数据作为性能参考&#xff0c;如支持多少在线&#xff0c;能跑到多少带宽等&#xff1b;实际上这些单一性的指标数据并不能反映服务的基础性能&#xff0c;毕竟应用场景是多样性的&#xff1b;那更好判断一…

算法题目——岛屿问题(POJ-1328)

POJ-1328 题目大意&#xff1a;在x轴上建立尽量少的雷达覆盖所有的岛屿。 Input&#xff1a;岛屿的数量n&#xff0c;雷达覆盖半径d.接下来的n行一行表示一个岛屿(x,y). Output:每个案例的雷达最少数目. 经典的区间选点&#xff01; 要搞清楚为什么排序&#xff0c;然后要明…