多域名 hexo 静态网站处理
应 LHY 的请求,我撰写了本文
本文记载了我是如何处理多个域名对一个静态网站的情况下,多个访问域名不同的节点之间的关系。
情况详述
本站通过多个免费静态网站托管服务商发布,访问地址:
服务器 | 访问链接(请使用https协议访问) |
---|---|
Vercel服务器 | https://cjh0613.now.sh/blog |
Github主站 | https://cjh0613.github.io/blog |
Bitbucket服务器 | https://cjh0613.bitbucket.io/blog |
Gitee备用站 | https://cjh0613.gitee.io/blog |
Netlify备用站 | https://cjh0613.netlify.app/blog |
其中,各服务器的内容是完全一致的,但又有不同(部分区别参见 静态网站托管服务商评比)。那么,如何处理它们的关系呢?
搜索引擎优化
首先,选定一个主服务器。这是由于搜索引擎会对不说明首选版本的一组完全相同的网页降权。按此修改 hexo 与主题的 _config.yml
。我选择的是 cjh0613.github.io ,微软后台。不管您用 sitemap , API ,还是手动提交链接,请只向搜索引擎提交包含此域名的网页链接。强烈建议使用 主动推送Hexo博客新链接至谷歌、必应、百度搜索引擎站长平台以提升网站收录质量和速度的插件hexo-submit-urls-to-search-engine
,现在我的一篇文章刚发布5分钟,即可在必应搜索到。
另外,打开网页源码,对所有网页加入标记首选网页的标签,例如:
1 | <link ref="canonical" href="https://cjh0613.com/20200507StaticWebsiteServiceProvider.html"> |
这样搜索引擎抓取网页时就知道您选定的规范网页了。现在比较优质的 hexo 主题都支持按照 hexo 设置,自动生成此标签了。您可查看源码。如没有此标签,请自行处理或联系主题作者。
节点间引导
各节点互有优劣。如 Github 后台强大,但中国内地速度慢;Gitee 中国内地速度快,但不稳定(前段时间某党开会前后断断续续),后台不如微软……
所以我分享时使用 Github 站,再用弹框将用户引导至 Gitee / Vercel 。
弹框实现
您需要修改主题源代码!
实践证明,谷歌会对一打开就调用 js 自带的弹框函数的网站降权。于是我找到了一个 js 前端 layer ,使用的 div 框。
首先,在网页源代码<head></head>
间添加(尽量靠前,jquery后)引入 layer :
1 | <script src="https://cdn.staticfile.org/layer/3.1.1/layer.min.js"></script> |
然后网页源代码<head></head>
间,引入 layer 后添加(当然可以保存至 .js
文件,再引入):
1 | <script> |
我还设置了检测到为 Gitee 服务器,在文章顶提示分享时使用 Github 服务器。也使用了类似 js 代码。主题不同具体设置也不同,就不复制过来了。
评论
基于 Github Issue 的评论系统(如 Gitalk)都使用了 Github API,然而它在中国内地并不稳定,即使是 Github 安卓官方客户端也不稳定,断断续续。因此不建议选用它们。