我前几天写了一篇文章,若是你想搭建一个博客,其中提到了使用 netlify
作博客托管服务。前端
netlify 能够为你的静态资源作托管,就是说它能够托管你的前端应用,就像 github page
那样。不过,它不又只像 github page
那么功能单一,它能够作更多的事情vue
CI/CD
: 当你 push 代码到仓库的特定分支会自动部署http headers
: 你能够定制资源的 http header
,从而能够作缓存优化等http redirect/rewrite
: 若是一个 nginx
,这样能够配置 /api
,解决跨域问题二级域名
: 你若是没有本身的域名,可使用它的任意二级域名-只要没有被占用,这比 github page
多仓库只能用 /path
要好不少CDN
: 把你的静态资源推到 CDN,虽然是国外的https
: 为你准备证书,固然使用的是 lets encrypt
Prerender
: 结合 SPA
,作预渲染它作的是整个前端部署工做流的事情,并且不少事情都是自动完成的。若是你想知道大厂是如何部署前端的,那你能够看看 netlify
nginx
年初(2019/03) 我写过一篇文章: 如何使用 docker 高效部署前端应用。其中讲了如何使用一个 nginx
镜像优化构建前端静态资源的过程,而这只是前端部署工做流的一小部分,这种方案更加适合小型公司。git
而在大型公司,基础设施更加健全,对于前端部署颇有可能有一个部署平台,如同 netlify
同样:你根本不须要构建镜像,你只须要写一个极其简单的配置文件。github
本篇文章讲解如何结合 netlify
去部署你 github
上的前端应用。将以个人我的仓库 cheat-sheets 部署到 cheatsheeets.netlify.com/git 做为示例进行演示。docker
固然
gitlab
也能够结合netlify
使用npm
若是本篇文章可以对你有所帮助,能够帮我在 shfshanyue/op-note 上点个 starapi
使用 github
受权登陆 netlify。在主页点击 New site from git
按钮,新建站点跨域
build command
: 如何生成静态文件,通常会是 npm run build
publish directory
: 静态文件目录,通常会是 public/dist
等另外也能够做为配置文件,参考下一节缓存
此时经过 cheatsheeets.netlify.com/git 访问页面,成功部署
配置文件能够配置你的 http 的 header
,rewrite
,redirect
等,能够参考 官方文档
如下我是的博客 shfshanyue/blog 的配置文件
[build]
base = ""
publish = ".vuepress/dist"
command = "npm run build"
[[headers]]
for = "/*"
[headers.values]
cache-control = "max-age=7200"
[[headers]]
for = "/assets/*"
[headers.values]
cache-control = "max-age=31536000"
复制代码
build.publish
: 静态文件目录build.command
: 如何生成文件的命令另外,我把 /assets/*
作了永久缓存,由于里边都是带了 hash 值的静态文件
另外,若是你的前端应用须要配置代理服务器,好比 /api
与 /graphql
,能够设置 redirects
。算是替代了一部分 nginx
的功能
[[redirects]]
from = "/graphql/"
to = "https://graphql.shanyue.tech"
status = 200
force = true
headers = {X-From = "Netlify"}
复制代码
若是你有我的博客,我的做品或者应用,那么你能够试一下 netlify
。因为服务器在国外,他可能有些慢,不过你能够试试国内厂商的 CDN