Next主题提高稳定访问速度的关键配置

Next主题默认检测网站根目录安装的插件,将其视为内部的插件,对于某些未通过npm安装的插件视为第三方插件。Next主题有一些特定的插件,而这些插件在CDNJS的镜像网站上一般没有适配的对应,而Next默认调用https://cdnjs.cloudflare.com的速度又不是足够快。所以要完全适配Next主题的专有插件,必须安装@next-theme/plugins, 这样适配Next主题的特定插件就会在托管的网站内部加载,这可以保证Next的各项功能正常工作。操作如下:

1
2
diary --ThemeUpdate
npm install @next-theme/plugins

先更新Next主题的目的是匹配最新的@next-theme/plugins, 于是可以保证主题内部插件工作良好。然而Next主题的一些部分还采用了图标,这些图标并不在@next-theme/plugins范围内,其中最重要的local-search插件也会受到影响,所以需要加载CDN网站到第三方插件。目前国内有很多 NPMCDN镜像,其中速度比较快,库比较全的CDN为:

其中Zstatic用到了镜像回源,也就是说只要访问一次,文件就会被存储到国内的服务器上,再也不用担心缓存过期了,所以网络文章建议优先用这个。Next配置文件为:

hexo-site/_config.next.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
vendors:
internal: local
plugins: custom
# custom_cdn_url: https://cdnjs.cloudflare.com/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
# custom_cdn_url: https://cdnjs.onmicrosoft.cn/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
# custom_cdn_url: https://mirrors.sustech.edu.cn/cdnjs/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
# custom_cdn_url: https://s4.zstatic.net/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
custom_cdn_url: https://cdn.iocdn.cc/npm/${npm_name}@${version}/${minified}
# custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified}
# custom_cdn_url: https://github.elemecdn.com/${npm_name}@${version}/${minified}
# custom_cdn_url: https://npm.elemecdn.com/${npm_name}@${version}/${minified}
css: css
js: js
images: images

安装@next-theme/plugins后,可以保证PDFNext主题依赖的插件由站内加载,其他部分则由cdn镜像加载,于是多数的镜像均可以正常使用了,为确保访问的稳定重新切换为s4.zstatic.net.