事情是这样的
最近一段时间,博客使用的cdn.jsdelivr.net
域名在国内无法访问了,找了几种替换方案。butterfly主题的event/config.js
中有默认配置,主题配置文件_config.butterfly.yaml
中有配置项,可以修改默认配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
CDN: internal_provider: local third_party_provider: jsdelivr option: main_css: /css/index.css main: /js/main.js utils: /js/utils.js translate: /js/tw_cn.js local_search: /js/search/local-search.js algolia_js: /js/search/algolia.js algolia_search_v4: 'https://fastly.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js' instantsearch_v4: 'https://fastly.jsdelivr.net/npm/instantsearch.js@4/dist/instantsearch.production.min.js' pjax: 'https://fastly.jsdelivr.net/npm/pjax/pjax.min.js' gitalk: 'https://fastly.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js' gitalk_css: 'https://fastly.jsdelivr.net/npm/gitalk/dist/gitalk.min.css' blueimp_md5: 'https://fastly.jsdelivr.net/npm/blueimp-md5/js/md5.min.js' valine: 'https://fastly.jsdelivr.net/npm/valine/dist/Valine.min.js' disqusjs: 'https://fastly.jsdelivr.net/npm/disqusjs@1/dist/disqus.js' disqusjs_css: 'https://fastly.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css' twikoo: 'https://fastly.jsdelivr.net/npm/twikoo@1/dist/twikoo.all.min.js' waline_js: 'https://fastly.jsdelivr.net/npm/@waline/client/dist/waline.js' waline_css: 'https://fastly.jsdelivr.net/npm/@waline/client/dist/waline.css' sharejs: 'https://fastly.jsdelivr.net/gh/overtrue/share.js@master/dist/js/social-share.min.js' sharejs_css: 'https://fastly.jsdelivr.net/npm/social-share.js/dist/css/share.min.css' mathjax: 'https://fastly.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js' katex: 'https://fastly.jsdelivr.net/npm/katex@latest/dist/katex.min.css' katex_copytex: 'https://fastly.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.min.js' katex_copytex_css: 'https://fastly.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.css' mermaid: 'https://fastly.jsdelivr.net/npm/mermaid/dist/mermaid.min.js' canvas_ribbon: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-ribbon.min.js' canvas_fluttering_ribbon: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js' canvas_nest: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js' activate_power_mode: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/activate-power-mode.min.js' fireworks: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/fireworks.min.js' click_heart: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-heart.min.js' ClickShowText: 'https://fastly.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-show-text.min.js' lazyload: 'https://fastly.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js' instantpage: 'https://fastly.jsdelivr.net/npm/instant.page@5/instantpage.min.js' typed: 'https://fastly.jsdelivr.net/npm/typed.js/lib/typed.min.js' pangu: 'https://fastly.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js' fancybox_css_v4: 'https://fastly.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css' fancybox_v4: 'https://fastly.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js' medium_zoom: 'https://fastly.jsdelivr.net/npm/medium-zoom/dist/medium-zoom.min.js' snackbar_css: 'https://fastly.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css' snackbar: 'https://fastly.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js' fontawesomeV6: 'https://fastly.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css' flickr_justified_gallery_js: 'https://fastly.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js' flickr_justified_gallery_css: 'https://fastly.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css' aplayer_css: 'https://fastly.jsdelivr.net/npm/aplayer@1/dist/APlayer.min.css' aplayer_js: 'https://fastly.jsdelivr.net/npm/aplayer@1/dist/APlayer.min.js' meting_js: 'https://fastly.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js' prismjs_js: 'https://fastly.jsdelivr.net/npm/prismjs@1/prism.min.js' prismjs_lineNumber_js: 'https://fastly.jsdelivr.net/npm/prismjs@1/plugins/line-numbers/prism-line-numbers.min.js' prismjs_autoloader: 'https://fastly.jsdelivr.net/npm/prismjs@1/plugins/autoloader/prism-autoloader.min.js'
|
免费CDN
通过fastly.jsdelivr.net
CDN替换原来的cdn.jsdelivr.net
是最方便的,只需要将二级域名cdn
替换为fastly
即可。
上面配置项,是我当前博客使用的配置方案。
通过npm.elemecdn.com
替换默认方案时,需要特别注意,将资源链接中的cdn.jsdelivr.net/npm
一并替换为npm.elemecdn.com
。
举例:algolia_search_v4的配置默认为:https://cdn.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js
,我们需要改为:
https://npm.elemecdn.com/algoliasearch@4/dist/algoliasearch-lite.umd.js
。
cdn.bootcdn.net
的替换方案,需要自己去搜索js包资源,找到链接复制替换,大多数情况下,后面的path也不一致。
举例:搜索disqus资源,我们找到如下资源链接:
https://cdn.bootcdn.net/ajax/libs/disqusjs/1.3.0/disqus.min.js
部分资源在bootcdn中并没有,需要结合其他CDN一起。
cdnjs.cloudflare.com
的替换方案和cdn.bootcdn.net
类似。
字帖跳动的CDN资源地址,替换方案同cdn.bootcdn.net
。