原文连接:部署 Hugo 网站到 Netlifygit
Netlify 是什么?它是一家云计算公司,为静态网站提供托管和 serverless 后端服务。github
关键在于,与 GitHub 相比,Netlify 托管的网站速度更快,也更稳定。web
本文就来介绍如何部署一个 Hugo 网站到 Netlify 和一些额外设置。后端
首先要 Fork 主题到你本身的帐号,这样便可以自定义主题,又能够 Pull 到最新的更新。缓存
而后要把 Hugo 网站的主题子模块化,由于 Netlify 不支持子模块之外的方法来使用主题,如最多见的:markdown
git clone https://github.com/olOwOlo/hugo-theme-even themes/even
若是原来使用的是 git clone 则须要先删除主题(注意备份),再在网站根目录下输入添加主题子模块的命令:app
git submodule add https://github.com/linehk/hugo-theme-even.git themes/even
若是在网站根目录下出现 .gitmodules 文件,且内容跟个人相似,则表示成功:less
[submodule "themes/even"] path = themes/even url = https://github.com/linehk/hugo-theme-even.git
能够选择在 .gitignore 中加入 public/ 来忽略掉 public 文件夹,由于已经不须要了。dom
而后 git push 到远程仓库便可。svg
跟官网宣传的同样,部署 Hugo 网站到 Netlify 很是简单,步骤以下:
【可选】在 Build command 加入 --cleanDestinationDir --forceSyncStatic --gc --ignoreCache --minify
等额外参数,这些参数的做用以下:
--cleanDestinationDir
:构建前先清理目标文件夹,即 public --forceSyncStatic
:强制同步 static 文件夹--gc
:构建后执行一些清理任务(删除掉一些没用的缓存文件)--ignoreCache
:构建时忽略缓存--minify
:压缩网页(Debug 时慎用)通过部署后已经能够经过 Netlify 分配的域名来访问网站了,如:https://sulinehk.netlify.com/
对于想对网站使用主域名而言,自定义域名很简单:
dns1.p01.nsone.net dns2.p01.nsone.net dns3.p01.nsone.net dns4.p01.nsone.net
仍是在 Custom domains 选项卡,点击 How to redirect the default Netlify subdomain to your primary domain 展开查看代码。
个人代码以下:
# These rules will change if you change your site’s custom domains or HTTPS settings # Redirect default Netlify subdomain to primary domain https://sulinehk.netlify.com/* https://www.sulinehk.com/:splat 301!
在 static 目录下新建文件 _redirects,粘贴代码进去。
在 HTTPS 选项卡下的 SSL/TLS certificate 选项开启便可。
证书的签发者为 Let’s Encrypt,支持自动续期。也能够自定义别的签发者。
若是想在 Chrome 地址栏里看到小绿锁(小灰锁),还须要把全部连接都替换成以 https:// 开头的连接。
接着在页面按下 F12 来打开开发者工具,并切换到 Network,刷新页面,查看有什么请求不是以 https:// 发出的,修改相关页面来替换。
在 Status badges 选项卡下有个连接代码,该连接代码能够展现该网站的部署状态。
你能够在网站的 GitHub 仓库下的 README.md 文件中展现它,或者将它放在网站主页的 footer 上。
这是个人连接代码:
[](https://app.netlify.com/sites/sulinehk/deploys)