Icarus用户指南 - CDN提供商
选择合适的CDN提供商可以大幅度减少网站访客的网页加载时间。 Icarus为你提供了几种内置的CDN提供商来承载Icaurs所用到的第三方库和资源文件的加载。
内置CDN提供商
目前,Icarus提供如下的内置CDN服务提供商:
- JavaScript库CDN
- cdnjs.com (
cdnjs
) - jsDelivr (
jsdelivr
) - UNPKG (
unpkg
) - loli.net (
loli
)
- cdnjs.com (
- Web字体CDN
- Google Fonts (
google
) - loli.net (
loli
) - font.im (
fontim
) - 中国科学技术大学 (
ustc
)
- Google Fonts (
- FontAwesome图标CDN
- FontAwesome 5 (
fontawesome
) - loli.net (
loli
)
- FontAwesome 5 (
默认的CDN服务提供商配置为:
1 | providers: |
自定义CDN提供商
除此之外,你还可以通过URL模板来自定义CDN提供商。 每种类别提供商的模板格式如下所示:
JavaScript库CDN
1 | https://some.cdn.domain.name/${package}/${version}/${filename} |
你需要将实际的包名称,包版本号,和文件相对路径替换为${package}
, ${version}
,和${filename}
占位符。
例如,如下JavaScript库的URL地址:
1 | https://unpkg.com/d3@5.7.0/dist/d3.min.js |
可以被概括成:
1 | https://unpkg.com/${package}@${version}/${filename} |
一些CDN提供商可能采用不同的URL形式。
例如,moment.js
库在CDN.js上有着如下的URL形式:
1 | https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js |
但在UNPKG上有着这样的URL形式:
1 | https://unpkg.com/moment@2.22.2/min/moment.min.js |
因此,你需要注意你的自定义CDN提供商的URL格式。
默认情况下,Icarus向URL模板中传入的参数采用npm的包名称和文件相对路径(例如moment@2.22.2/min/moment.min.js
)。
jsDelivr和UNPKG就采用这种npm形式。
否则,如果你采用如CDN.js这样的CDN提供商,请在URL模板前加上[cdnjs]
:
1 | '[cdnjs]https://some.cdn.domain.name/${package}/${version}/${filename}' |
Web字体CDN
你可以参入Google字体镜像站的URL或是与其兼容的网络字体CDN。
Icarus依赖Ubuntu
,Oxanium
,和Source Code Pro
这三种字体,所以确保你使用的CDN提供这些字体。
自定义的URL模板需包含字体类型type
(图标icon
或是字体font
)和字体名称fontname
两个占位符:
1 | https://some.google.font.mirror/${type}?family=${fontname} |
FontAwesome图标CDN
你可以传入自定义的FontAwesome CDN提供商的URL。 URL中不需要包含占位符。 本主题用到了一些FontAwesome 5图标,所以自定义的提供商需要至少提供它们。
1 | https://custom.fontawesome.mirror/some.stylesheet.css |
以上自定义配置需放到主题配置中的providers
部分:
1 | providers: |
CDN工具函数
本主题定义了三个工具函数来帮助主题开发者轻松使用自定义CDN来引用第三方的前端资源。 详情请参见ppoffice/hexo-component-inferno.
Icarus用户指南 - CDN提供商
http://ppoffice.github.io/hexo-theme-icarus/Configuration/icarus用户指南-cdn提供商/