搭建的基础原理
搭建简单的个人博客主要是有四个内容:
博客生成框架;代码托管平台;站点部署服务;访问加速服务
博客生成框架
这个是一个应用程序,它帮助我们把我们的博客复杂的前端后端代码给简化,让我们可以用简单的手段输入一些内容来实现复杂的网站搭建,帮助我们减少编写:html,css,js这三件套。这三件套才是网站的文件核心架构,但是我们自己从新编写太麻烦了,于是我们可以用生成框架减轻负担。
准备使用的是hexo。
代码托管平台
对于我们自己的网站代码和文件,也就是上面说的三件套,我们需要一个平台来托管代码, 文件托管平台是一种在线服务平台,主要提供文件存储、共享和管理等功能 。简单来说就是在网络的某一个地方来存放我们的代码——博客文件目录。
准备使用github
站点部署服务
将形成的网站部署到互联网上,让他人可以访问你的网站。常见的就是github-pages,但是由于对国内访问太慢了,于是我们采用netlify来作为本次实验的使用平台。同时,netlify不止支持静态的网站部署,也可以自定义网站的脚本。
1 | npm run是在使用 Node.js 和 npm(Node Package Manager)进行项目开发时常用的命令,主要用于执行 package.json 文件中 scripts 字段所定义的脚本命令。 |
访问加速服务
访问加速服务是一种通过优化网络传输、缓存数据等技术手段,来提高用户访问网络资源速度和效率的服务。 原理是CDN加速
准备使用cloudflare
开始搭建
博客生成框架
前置环境
首先要有node.js的环境,我们去官方网站下载,windos直接用下载包就可以了
然后再终端看看版本:
1 | nod -v |
然后去安装hexo:
1 | npm install hexo-cli -g # 全局安装hexo命令行工具 |
然后初始化hexo的框架
1 | hexo init "你的博客目录名称" # 目录名称不含空格的时候双引号可以省略 |
安装博客需要的其他支持:
1 | npm install # 安装的依赖项在package.json文件的dependencies字段中可以看到 |
查看目录结构:
1 | tree -L 1 |
结果如下:
ps:
可能没能使用tree,那是因为你的这个功能没有安装:
1
2
3
4
5
6
7
8
9
10
11安装 Chocolatey
以管理员身份打开 PowerShell,然后运行以下命令:
powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
安装 tree
安装好 Chocolatey 之后,在 PowerShell 中运行下面的命令来安装 tree:
powershell
choco install tree
安装完成后,重新打开 Git Bash,就可以使用 tree 命令了。
1 | .├── _config.landscape.yml |
_config.yml
骨架文件,是生成新页面或者新博客的模版。可以根据需求编辑,当`hexo`生成新博客的时候,会用这里面的模版进行初始化。1
2
3
4
5
为全局配置文件,网站的很多信息都在这里配置,比如说网站名称,副标题,描述,作者,语言,主题等等。具体可以参考官方文档:https://hexo.io/zh-cn/docs/configuration.html。
- ```
scaffoldssource
网站主题目录,`hexo`有非常丰富的主题支持,主题目录会存放在这个目录下面。 我们后续会以默认主题来演示,更多的主题参见:https://hexo.io/themes/1
2
3
4
5
这个文件夹下面存放的是网站的`markdown`源文件,里面有一个`_post`文件夹,所有的`.md`博客文件都会存放在这个文件夹下。现在,你应该能看到里面有一个`hello-world.md`文件。
- ```
themes
简单操作:
1 | hexo new post "test" # 会在 source/_posts/ 目录下生成文件 ‘test.md’,打开编辑 |
为了后续netlify
建站方便,我们可以在package.json
里面添加一个命令:
1 | { |
由于我们这个教程的重点不是如何编写自己的博客,而是怎么把博客搭建起来,所以hexo
的细节用法以及各种主题的设置我们就不展开细说了,官网有非常详细的文档和教程可供参考。这里简单提一下_config.yml
的各个字段的含义:
1 | # Site |
更改主题:
在这个地方选择自己喜欢的主题
然后去到github找到对应安装教程
来到博客页面点开git bash:
1 | cd themes |
安装必要的插件:
去到主题对应的文件夹下面,在package包里面就有需要的插件。使用下面的语句进行下载。
1 | npm install |
下载必要插件
hexo - renderer - multi - markdown - it
插件:它是用于渲染 Markdown 格式文章的。在 Hexo 博客根目录下的命令行中,输入以下命令进行安装:
1 | npm install hexo-renderer-multi-markdown-it --save |
hexo - autoprefixer
插件:该插件会自动为你的 CSS 属性添加浏览器前缀,确保在不同浏览器中显示一致。同样在博客根目录的命令行中,输入
1 | npm install hexo-autoprefixer --save |
完成以上步骤后,在命令行中进入 Hexo 博客根目录,使用hexo clean
命令清除缓存,再使用hexo generate
命令生成静态文件,最后用hexo server
启动本地服务器,就可以在浏览器中查看应用新主题后的效果了。
代码托管平台
然后就是github代码托管:
示例流程总结
假设你的 Hexo 博客目录为 /d/my-load/github/my-blog/snow-blog/snowfeeling,远程仓库 URL 为 https://github.com/yourusername/your-repo.git,完整的命令流程如下:
1 | #记得在你的github上面先创建仓库。 |
按照以上步骤操作,你就可以将 Hexo 博客目录下的内容成功推送到远程服务器上的仓库中。
站点部署服务
- 首先注册并登入Netlify
- 这一步需要能够科学上网,因为这是一个国外的网站
- 我们的博客在开启cloundflare的CDN加速之前,也只能通过科学上网的方式访问
新建站点:
连接github
选择刚刚上传的博客项目:
除了构建命令改成我们之前设置的npm run netlify
:
构建完成后我们就能够看到一个URL,打开网址就是我们的个人博客了 。
可以根据提示进行进一步的设置,比如说设置一下二级域名(即netlify.app
之前的域名)。
在下面的演示中,我设置的netlify
二级域名为sn0wpear,也就是说,我的个人博客站点的域名为sn0wpear.netlify.app
。
不过现在,我们的个人博客已经算是搭建完成了。下面需要解决的就是配置域名和访问慢的问题了。
接下来配置域名
配置域名的前提自然是要购买域名了,从任意域名服务商处购买一个域名。
然后设置域名解析,类型为CNAME
(DNS知识点参见计算机网络相关教程),内容为xxxxx.netlify.app
,其中xxxxx
为你自己设置的个性二级域名。
设置完毕之后需要等待一段时间,因为DNS服务器需要一段时间来进行同步。
然后,我们还需要回到netlify中配置一下自己的用户域名,这样的话可以在国外获得netlify本身的CDN支持
进行相关的配置,由于我们的域名本身已经配置了解析,这里会显示出来,不用再额外添加记录,只需要一路默认即可。
设置一下netlify本身的对于国外CDN的支持。
访问加速服务
- 注册Clouldflare并登陆
- 添加站点
- 选择免费套餐
- 添加 DNS 记录
- 一般情况下 Cloudflare 会检测出来几条 DNS 记录,类型大多数是A,或者AAAA,由于我们是转发,所以应该是 CNAME 类型才对。有必要的话可能得手动配置一下。
- 更改名称服务器
- 这个步骤Cloudflare会提供一个在线的教程,主要步骤是在你的域名服务商那里修改 dns 解析服务器为 cloudflare 提供的地址,修改完成后点击完成。
- 以阿里云为例,设置的步骤如下:
- 进入域名的配置界面
- 将域名服务器从阿里云的默认服务器改成clouldflare的服务器
- 配置完成后,clouldflare会有邮件通知(一般不会等太久)
- 在clouldflare配置完成之后,我们可以回到netlify去配置一下https访问。
- 先确认一下dns解析
- 然后自动安装证书:
- 最后看到如下的界面,就说明https配置完成了。
完成
然后就可以去你的网址上面看见你的博客了。
之后我们可以看见美化的教程。