学习gatsby,从这里开始!

2021-12-01 11:41:28 浏览数 (1)

一、Gatsby 是什么?

可建立一个访问速度极快的静态网站。

  • 轻松发布:只需执行 gatsby build 命令,所有网站数据都被打包到 public 文件夹中,拷贝此文件夹到 nginx 即可完成网站发布。
  • 不中断:网站更新也只是文件覆盖操作,不会因更新而中断服务。
  • 速度快:网站所需数据在编译期就获取、压缩、优化完成,无需在打开网页时再花费时间从第三方获取数据,所以网站的访问速度非常快。
  • 完善的插件库生态:2500多个插件可免费使用,极大缩短网站开发周期。
使用场景
  • 如果你有一堆用 Markdown 编辑的文章,想要发布到网上,又不想浪费时间在编辑排版上,那么用 Gatsby 生成一个博客网站,是一个非常不错的解决方案。

二、Gatsby 简介
1、图解系统结构
  • 数据统一:从 不同数据源(下图中 CMS、Private API 等) 获取数据,形成统一的数据结构( GraphQL Data Layer)
  • 数据查询:通过 GraphQL 查询 GraphQL Data Layer 中的数据
  • 展示数据:通过React 编写HTML页面,把数据展示出来。当然也可以找一个UI库,让页面更美观。
data-layer-with-nodesdata-layer-with-nodes

2、Gatsby 项目文件结构
  • 详情,看这里!

3、官方demo

展示 Gatsby 的各种功能怎么使用。详情,看这里!


4、网站的三种生成方式
  • 纯静态网站;
  • 延迟生成的静态网站;
  • 纯服务端动态生成。
  • 详情,看这里!

三、安装 Gatsby 并新建网站

Gatsby 是在 Node.js 的基础上建立,使用 Gatsby 之前必须先安装 Node.js 且版本 ≥ 12.13。使用 Gatsby CLI 工具,三句命令就可以新建一个静态网站。详情步骤,看这里!


四、怎么新增网站页面?

浏览器打开的URL是怎么跟项目中的代码页面 (js文件) 对应起来的?这种 URL 与 代码文件 之间的对应关系就称之为页面路由。那么Gatsby 中怎么新建代码页面?其页面路由又有哪些规则?

1、新建页面及其路由
  • 详细步骤,看这里!

2、用 markdown 文档作为数据源来建立网站
  • 详细步骤,看这里!

3、用 strapi(CMS) 作为数据源来建立网站
  • 详细步骤,看这里!

4、使用 MDX 文件新增页面
  • MDX文件是指 在 markdown 文件中直接插入 jsx 代码 的混合文件,怎么用在Gatsby中?详细步骤,看这里!

五、其他重要功能
1、Gatsby 怎么加载显示图片?
  • 详细步骤,看这里!
2、怎么跳转到其他页面?
  • 详细步骤,看这里!

3、怎么使用 css ?
  • 详细步骤,看这里!

4、怎么安装和使用插件?
  • 详细步骤,看这里!

5、怎么查询数据层数据?
  • 详细步骤,看这里!

6、网站的中文全文搜索功能?
  • 详细步骤,看这里!

7、怎么使用自定义字体?
  • 详细步骤,看这里!

8、怎样给网站根目录增加前缀?

当只能用 http://www.example.com/blog 这个域名,而不能用 http://www.example.com 来发布网站时,Gatsby 项目中应该怎么设置?详情,看这里!


六、SEO
1、网站流量统计

哪些人访问了网站?访问了那些网站哪些页面?访问者来自于哪个省市区?年龄多大?这些问题,可通过百度统计这个插件完成。详细步骤,看这里!


2、sitemap.xml

为gatsby的静态网站增加sitemap.xml,方便搜索引擎收录、更新。详细步骤,看这里!


3、robots.txt

使用robots.txt 文件,禁止网络爬虫访问某些页面。详细步骤,看这里!


4、head

HTML中head部分的数据对于 SEO 极其重要,用 bolog 模板生成的 Gatsby 项目,已经生成了SEO组件(src/components/seo.js),直接使用,完成页面title、description等设置。使用了插件 react-helmet。


七、部署

怎么部署发布gatsby项目?

  • 第一步:有一个备案过的域名。可以在阿里云上进行域名注册和备案;
  • 第二步:需要一个服务器。同样也可以在阿里云上购买一个ESC;
  • 第三步:在阿里云后台设置域名解析到第二步的服务器;
  • 第四步:在服务器上安装nginx;
  • 第五步:在开发机器上编译 gatsby 项目
代码语言:txt复制
gatsby clean
gatsby build

# 项目目录下会生成 public 文件夹
  • 第六步:把第五步中 public 文件夹 下所有内容拷贝至 第四步中的nginx下,并设置好ngingx 配置文件;
  • 第七步:可以通过域名访问网站了。

八、参考文档
  • 学习gatsby,从这里开始!

0 人点赞