2023-11-03 21:44:31 +08:00

1 line
49 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2"><meta name="theme-color" content="#FFF"><link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png"><link rel="icon" type="image/ico" sizes="32x32" href="/images/favicon.ico"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><link rel="alternate" type="application/rss+xml" title="涛声依旧" href="https://hitoli.com/rss.xml"><link rel="alternate" type="application/atom+xml" title="涛声依旧" href="https://hitoli.com/atom.xml"><link rel="alternate" type="application/json" title="涛声依旧" href="https://hitoli.com/feed.json"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Mulish:300,300italic,400,400italic,700,700italic%7CFredericka%20the%20Great:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20JP:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20SC:300,300italic,400,400italic,700,700italic%7CInconsolata:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext"><link rel="stylesheet" href="/css/app.css?v=0.0.0"><meta name="keywords" content="Hexo,Shoka,jsdelivr"><link rel="canonical" href="https://hitoli.com/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/"><title>shoka 主题速度优化 - 拆分 jsdelivr - Hexo - Docker - 极空间 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣</title><meta name="generator" content="Hexo 6.3.0"></head><body itemscope itemtype="http://schema.org/WebPage"><div id="loading"><div class="cat"><div class="body"></div><div class="head"><div class="face"></div></div><div class="foot"><div class="tummy-end"></div><div class="bottom"></div><div class="legs left"></div><div class="legs right"></div></div><div class="paw"><div class="hands left"></div><div class="hands right"></div></div></div></div><div id="container"><header id="header" itemscope itemtype="http://schema.org/WPHeader"><div class="inner"><div id="brand"><div class="pjax"><h1 itemprop="name headline">shoka 主题速度优化 - 拆分 jsdelivr</h1><div class="meta"><span class="item" title="创建时间2023-07-01 01:15:00"><span class="icon"><i class="ic i-calendar"></i> </span><span class="text">发表于</span> <time itemprop="dateCreated datePublished" datetime="2023-07-01T01:15:00+08:00">2023-07-01</time> </span><span class="item" title="本文字数"><span class="icon"><i class="ic i-pen"></i> </span><span class="text">本文字数</span> <span>4.2k</span> <span class="text"></span> </span><span class="item" title="阅读时长"><span class="icon"><i class="ic i-clock"></i> </span><span class="text">阅读时长</span> <span>4 分钟</span></span></div></div></div><nav id="nav"><div class="inner"><div class="toggle"><div class="lines" aria-label="切换导航栏"><span class="line"></span> <span class="line"></span> <span class="line"></span></div></div><ul class="menu"><li class="item title"><a href="/" rel="start">☆∵∴Hito∴∵★</a></li></ul><ul class="right"><li class="item theme"><i class="ic i-sun"></i></li><li class="item search"><i class="ic i-search"></i></li></ul></div></nav></div><div id="imgs" class="pjax"><ul><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giclwuom7cj20zk0m8dvn.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1gipevgoki5j20zk0m84qp.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giciundwu5j20zk0m8n9e.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giclgrvbd6j20zk0m8qv5.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1gicis081o9j20zk0m8dmr.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giclh0m9pdj20zk0m8hdt.jpg"></li></ul></div></header><div id="waves"><svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"/></defs><g class="parallax"><use xlink:href="#gentle-wave" x="48" y="0"/><use xlink:href="#gentle-wave" x="48" y="3"/><use xlink:href="#gentle-wave" x="48" y="5"/><use xlink:href="#gentle-wave" x="48" y="7"/></g></svg></div><main><div class="inner"><div id="main" class="pjax"><div class="article wrap"><div class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList"><i class="ic i-home"></i> <span><a href="/">首页</a></span><i class="ic i-angle-right"></i> <span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" itemprop="item" rel="index" title="分类于 极空间"><span itemprop="name">极空间</span></a><meta itemprop="position" content="1"></span><i class="ic i-angle-right"></i> <span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" itemprop="item" rel="index" title="分类于 Docker"><span itemprop="name">Docker</span></a><meta itemprop="position" content="2"></span><i class="ic i-angle-right"></i> <span class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/Hexo/" itemprop="item" rel="index" title="分类于 Hexo"><span itemprop="name">Hexo</span></a><meta itemprop="position" content="3"></span></div><article itemscope itemtype="http://schema.org/Article" class="post block" lang="zh-CN"><link itemprop="mainEntityOfPage" href="https://hitoli.com/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/"><span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="image" content="/images/avatar.jpg"><meta itemprop="name" content="Hito Li"><meta itemprop="description" content="天下事有难易乎?为之,则难者亦易矣, 天生我材必有用"></span><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="涛声依旧"></span><div class="body md" itemprop="articleBody"><h4 id="前言"><a class="anchor" href="#前言">#</a> 前言</h4><div class="note primary"><p>该篇文章介绍了如何对 shoka 主题进行 jsdelivr 聚合拆分,以便使用国内镜像源和异步加载,从而优化网站速度。具体操作包括更改模板、注册 helper 和更改配置。其中,推荐使用 advVendors 配置,可自定义加载源和 js 文件名同时支持异步加载、pjax 刷新和 integrity 防 XXS 等特性。</p></div><p>众所周知jsdelivr 在国内的速度可以用慢的一批来形容而 shoka 主题使用了 jsdelivr 的 combine 功能加载第三方 js, 而 combine 在国内没有镜像源并且阻断了使用 CDN 并发加速的道路,本篇博文会将 jsdelivr 聚合拆分为几个独立的 js, 以便使用国内镜像源和异步加载。</p><div class="note info"><p>此方案相较于本地化而言有较大速度优势,尤其在 CDN 并发加持下</p></div><h4 id="拆分-jsdelivr"><a class="anchor" href="#拆分-jsdelivr">#</a> 拆分 jsdelivr</h4><ol><li>更改模板</li></ol><p>打开 <span class="red">shoka\layout_partials\layout.njk</span>,找到第 144 行左右:</p><figure class="highlight html"><figcaption data-lang="HTML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://cdn.polyfill.io/v3/polyfill.js<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="2"></td><td><pre>&#123;&#123; _vendor_js() &#125;&#125;</pre></td></tr><tr><td data-num="3"></td><td><pre>&#123;&#123; _js('app.js') &#125;&#125;</pre></td></tr><tr><td data-num="4"></td><td><pre>&#123;&#123; partial('_partials/third-party/baidu-analytics.njk', &#123;&#125;, &#123;cache: true&#125;) &#125;&#125;</pre></td></tr></table></figure><p>更改为如下内容:</p><figure class="highlight html"><figcaption data-lang="HTML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://cdn.polyfill.io/v3/polyfill.js<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">></span></span></pre></td></tr><tr><td data-num="2"></td><td><pre>&#123;%- if theme.advVendors.enable %&#125;</pre></td></tr><tr><td data-num="3"></td><td><pre> &#123;% for i in _list_vendor_js() %&#125;</pre></td></tr><tr><td data-num="4"></td><td><pre> &#123;&#123; _adv_vendor_js(i) &#125;&#125;</pre></td></tr><tr><td data-num="5"></td><td><pre> &#123;% endfor %&#125;</pre></td></tr><tr><td data-num="6"></td><td><pre>&#123;%- else %&#125;</pre></td></tr><tr><td data-num="7"></td><td><pre>&#123;&#123; _vendor_js() &#125;&#125;</pre></td></tr><tr><td data-num="8"></td><td><pre>&#123;%- endif %&#125;</pre></td></tr><tr><td data-num="9"></td><td><pre>&#123;&#123; _js('app.js')&#125;&#125;</pre></td></tr><tr><td data-num="10"></td><td><pre>&#123;&#123; partial('_partials/third-party/baidu-analytics.njk', &#123;&#125;, &#123;cache: true&#125;) &#125;&#125;</pre></td></tr></table></figure><ol start="2"><li>注册 helper</li></ol><p>打开 <span class="red">shoka\scripts\helpers\asset.js</span>, 最后一行新建空行,增加如下内容:</p><figure class="highlight javascript"><figcaption data-lang="javascript"></figcaption><table><tr><td data-num="1"></td><td><pre>hexo<span class="token punctuation">.</span>extend<span class="token punctuation">.</span>helper<span class="token punctuation">.</span><span class="token function">register</span><span class="token punctuation">(</span><span class="token string">'_list_vendor_js'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token keyword">return</span> hexo<span class="token punctuation">.</span>theme<span class="token punctuation">.</span>config<span class="token punctuation">.</span>vendorsList<span class="token punctuation">.</span>js<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token punctuation">&#125;</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre></pre></td></tr><tr><td data-num="5"></td><td><pre>hexo<span class="token punctuation">.</span>extend<span class="token punctuation">.</span>helper<span class="token punctuation">.</span><span class="token function">register</span><span class="token punctuation">(</span><span class="token string">'_adv_vendor_js'</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">js_name</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="6"></td><td><pre> <span class="token keyword">const</span> config <span class="token operator">=</span> hexo<span class="token punctuation">.</span>theme<span class="token punctuation">.</span>config<span class="token punctuation">.</span>advVendors<span class="token punctuation">.</span>js<span class="token punctuation">[</span>js_name<span class="token punctuation">]</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="7"></td><td><pre> <span class="token keyword">const</span> src <span class="token operator">=</span> config<span class="token punctuation">[</span><span class="token string">"src"</span><span class="token punctuation">]</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="8"></td><td><pre> <span class="token keyword">let</span> result<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="9"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>src<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"http"</span><span class="token punctuation">)</span> <span class="token operator">!==</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="10"></td><td><pre> result <span class="token operator">=</span> src<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token punctuation">&#125;</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>src<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"combine"</span><span class="token punctuation">)</span> <span class="token operator">!==</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="12"></td><td><pre> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"The combine feature is not recommended!"</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="13"></td><td><pre> result <span class="token operator">=</span> hexo<span class="token punctuation">.</span>theme<span class="token punctuation">.</span>config<span class="token punctuation">.</span>advVendors<span class="token punctuation">.</span>combine <span class="token operator">+</span> src<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="14"></td><td><pre> <span class="token punctuation">&#125;</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>src<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"npm"</span><span class="token punctuation">)</span> <span class="token operator">!==</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="15"></td><td><pre> result <span class="token operator">=</span> hexo<span class="token punctuation">.</span>theme<span class="token punctuation">.</span>config<span class="token punctuation">.</span>advVendors<span class="token punctuation">.</span>npm <span class="token operator">+</span> src<span class="token punctuation">.</span><span class="token function">slice</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="16"></td><td><pre> <span class="token punctuation">&#125;</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>src<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">"gh"</span><span class="token punctuation">)</span> <span class="token operator">!==</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="17"></td><td><pre> result <span class="token operator">=</span> hexo<span class="token punctuation">.</span>theme<span class="token punctuation">.</span>config<span class="token punctuation">.</span>advVendors<span class="token punctuation">.</span>github <span class="token operator">+</span> src<span class="token punctuation">.</span><span class="token function">slice</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="18"></td><td><pre> <span class="token punctuation">&#125;</span> <span class="token keyword">else</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="19"></td><td><pre> result <span class="token operator">=</span> <span class="token string">"/"</span> <span class="token operator">+</span> src<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="20"></td><td><pre> <span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="21"></td><td><pre> <span class="token keyword">let</span> attr <span class="token operator">=</span> <span class="token punctuation">&#123;</span><span class="token literal-property property">src</span><span class="token operator">:</span> result<span class="token punctuation">&#125;</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="22"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>config<span class="token punctuation">[</span><span class="token string">"async"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> attr<span class="token punctuation">[</span><span class="token string">"async"</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">"async"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="23"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>config<span class="token punctuation">[</span><span class="token string">"data-pjax"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> attr<span class="token punctuation">[</span><span class="token string">"data-pjax"</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">"data-pjax"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="24"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>config<span class="token punctuation">[</span><span class="token string">"hash-value"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> attr<span class="token punctuation">[</span><span class="token string">"integrity"</span><span class="token punctuation">]</span><span class="token operator">=</span>config<span class="token punctuation">[</span><span class="token string">"hash-value"</span><span class="token punctuation">]</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="25"></td><td><pre> <span class="token keyword">if</span> <span class="token punctuation">(</span>config<span class="token punctuation">[</span><span class="token string">"deferLoad"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="26"></td><td><pre> <span class="token keyword">return</span> <span class="token function">htmlTag</span><span class="token punctuation">(</span><span class="token string">'script'</span><span class="token punctuation">,</span> <span class="token punctuation">&#123;</span><span class="token string-property property">"data-pjax"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">&#125;</span><span class="token punctuation">,</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string"></span></span></pre></td></tr><tr><td data-num="27"></td><td><pre> const script=document.createElement("script");script.src="<span class="token interpolation"><span class="token interpolation-punctuation punctuation">$&#123;</span>result<span class="token interpolation-punctuation punctuation">&#125;</span></span><span class="token string">",script.async=true,document.body.appendChild(script)</span></pre></td></tr><tr><td data-num="28"></td><td><pre> <span class="token template-punctuation string">`</span><span class="token punctuation">)</span></pre></td></tr><tr><td data-num="29"></td><td><pre> <span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="30"></td><td><pre> <span class="token keyword">return</span> <span class="token function">htmlTag</span><span class="token punctuation">(</span><span class="token string">'script'</span><span class="token punctuation">,</span> attr<span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="31"></td><td><pre><span class="token punctuation">&#125;</span><span class="token punctuation">)</span></pre></td></tr></table></figure><ol start="3"><li>更改配置</li></ol><p>在 shoka 目录下 <span class="red">_config.yml</span> 增加如下内容:</p><div class="note info"><p>推荐内容,可根据自己情况更改</p></div><figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token key atrule">advVendors</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token key atrule">enable</span><span class="token punctuation">:</span> <span class="token boolean important">true</span></pre></td></tr><tr><td data-num="3"></td><td><pre> <span class="token key atrule">github</span><span class="token punctuation">:</span> <span class="token string">"https://cdn.jsdelivr.net/gh/"</span></pre></td></tr><tr><td data-num="4"></td><td><pre> <span class="token key atrule">combine</span><span class="token punctuation">:</span> <span class="token string">"https://cdn.jsdelivr.net/"</span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token key atrule">npm</span><span class="token punctuation">:</span> <span class="token string">"https://unpkg.com/"</span></pre></td></tr><tr><td data-num="6"></td><td><pre> <span class="token key atrule">js</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="7"></td><td><pre> <span class="token key atrule">pace</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="8"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/pace/1.0.2/pace.min.js</pre></td></tr><tr><td data-num="9"></td><td><pre> <span class="token key atrule">pjax</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="10"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lib.baomitu.com/pjax/0.2.8/pjax.min.js</pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token key atrule">fetch</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="12"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> npm/whatwg<span class="token punctuation">-</span>fetch@3.4.0/dist/fetch.umd.js</pre></td></tr><tr><td data-num="13"></td><td><pre> <span class="token key atrule">anime</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="14"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/animejs/3.2.0/anime.min.js</pre></td></tr><tr><td data-num="15"></td><td><pre> <span class="token key atrule">algolia</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="16"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/algoliasearch/4.12.1/algoliasearch<span class="token punctuation">-</span>lite.umd.min.js</pre></td></tr><tr><td data-num="17"></td><td><pre> <span class="token key atrule">instantsearch</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="18"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/instantsearch.js/4.39.0/instantsearch.production.min.js</pre></td></tr><tr><td data-num="19"></td><td><pre> <span class="token key atrule">lazyload</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="20"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/lozad.js/1.16.0/lozad.min.js</pre></td></tr><tr><td data-num="21"></td><td><pre> <span class="token key atrule">quicklink</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="22"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/quicklink/2.2.0/quicklink.umd.min.js</pre></td></tr><tr><td data-num="23"></td><td><pre> <span class="token key atrule">fancybox</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="24"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf26<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/<span class="token punctuation">?</span><span class="token punctuation">?</span>jquery/3.5.1/jquery.min.js<span class="token punctuation">,</span>fancybox/3.5.7/jquery.fancybox.min.js<span class="token punctuation">,</span>justifiedGallery/3.8.1/js/jquery.justifiedGallery.min.js</pre></td></tr><tr><td data-num="25"></td><td><pre> <span class="token key atrule">async</span><span class="token punctuation">:</span> <span class="token boolean important">true</span></pre></td></tr><tr><td data-num="26"></td><td><pre> <span class="token key atrule">valine</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="27"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> gh/amehime/MiniValine@4.2.2<span class="token punctuation">-</span>beta10/dist/MiniValine.min.js</pre></td></tr><tr><td data-num="28"></td><td><pre> <span class="token key atrule">copy_tex</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="29"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//lf9<span class="token punctuation">-</span>cdn<span class="token punctuation">-</span>tos.bytecdntp.com/cdn/expire<span class="token punctuation">-</span>1<span class="token punctuation">-</span>M/KaTeX/0.12.0/contrib/copy<span class="token punctuation">-</span>tex.min.js</pre></td></tr><tr><td data-num="30"></td><td><pre> <span class="token key atrule">async</span><span class="token punctuation">:</span> <span class="token boolean important">true</span></pre></td></tr><tr><td data-num="31"></td><td><pre> <span class="token key atrule">chart</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="32"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> npm/frappe<span class="token punctuation">-</span>charts@1.5.0/dist/frappe<span class="token punctuation">-</span>charts.min.iife.js</pre></td></tr><tr><td data-num="33"></td><td><pre></pre></td></tr><tr><td data-num="34"></td><td><pre><span class="token key atrule">vendorsList</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="35"></td><td><pre> <span class="token key atrule">js</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="36"></td><td><pre> <span class="token punctuation">-</span> pace</pre></td></tr><tr><td data-num="37"></td><td><pre> <span class="token punctuation">-</span> pjax</pre></td></tr><tr><td data-num="38"></td><td><pre> <span class="token punctuation">-</span> fetch</pre></td></tr><tr><td data-num="39"></td><td><pre> <span class="token punctuation">-</span> anime</pre></td></tr><tr><td data-num="40"></td><td><pre> <span class="token punctuation">-</span> algolia</pre></td></tr><tr><td data-num="41"></td><td><pre> <span class="token punctuation">-</span> instantsearch</pre></td></tr><tr><td data-num="42"></td><td><pre> <span class="token punctuation">-</span> lazyload</pre></td></tr><tr><td data-num="43"></td><td><pre> <span class="token punctuation">-</span> quicklink</pre></td></tr><tr><td data-num="44"></td><td><pre> <span class="token punctuation">-</span> fancybox</pre></td></tr><tr><td data-num="45"></td><td><pre> <span class="token punctuation">-</span> valine</pre></td></tr><tr><td data-num="46"></td><td><pre> <span class="token punctuation">-</span> copy_tex</pre></td></tr><tr><td data-num="47"></td><td><pre> <span class="token punctuation">-</span> chart</pre></td></tr></table></figure><p>下面为结构详解:</p><figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token key atrule">advVendors</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="2"></td><td><pre> <span class="token key atrule">enable</span><span class="token punctuation">:</span> <span class="token boolean important">true</span> <span class="token comment">#是否开启,关闭使用主题默认加载</span></pre></td></tr><tr><td data-num="3"></td><td><pre> <span class="token key atrule">github</span><span class="token punctuation">:</span> <span class="token comment">#github 使用的加载源,需要协议头和末尾斜杠</span></pre></td></tr><tr><td data-num="4"></td><td><pre> <span class="token key atrule">combine</span><span class="token punctuation">:</span> <span class="token comment">#聚合 js 使用的加载源 (不建议使用)</span></pre></td></tr><tr><td data-num="5"></td><td><pre> <span class="token key atrule">npm</span><span class="token punctuation">:</span> <span class="token comment">#npm 的加载源</span></pre></td></tr><tr><td data-num="6"></td><td><pre> <span class="token key atrule">js</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="7"></td><td><pre> <span class="token key atrule">jspackage</span><span class="token punctuation">:</span> <span class="token comment">#js 名,可以与文件名不一致</span></pre></td></tr><tr><td data-num="8"></td><td><pre> <span class="token key atrule">src</span><span class="token punctuation">:</span> <span class="token string">"资源地址,详情见后面"</span></pre></td></tr><tr><td data-num="9"></td><td><pre> <span class="token comment"># async: true 异步加载此 js</span></pre></td></tr><tr><td data-num="10"></td><td><pre> <span class="token comment"># data-pjax: true 在 pjax 加载时刷新此 js</span></pre></td></tr><tr><td data-num="11"></td><td><pre> <span class="token comment"># hash-value: 这个资源的 integrity 值,用于防 XXS</span></pre></td></tr><tr><td data-num="12"></td><td><pre> <span class="token comment"># deferLoad: true 使用动态 DOM 节点添加延迟 js 加载 (实验性)</span></pre></td></tr><tr><td data-num="13"></td><td><pre></pre></td></tr><tr><td data-num="14"></td><td><pre><span class="token key atrule">vendorsList</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="15"></td><td><pre> <span class="token key atrule">js</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="16"></td><td><pre> <span class="token punctuation">-</span> jspackage <span class="token comment">#与上方 jspackage 一致即可</span></pre></td></tr></table></figure><p>资源地址格式如下:</p><p><span class="red"><span class="exturl" data-url="aHR0cHM6Ly9leGFtcGxlLmNvbS94eHguanM=">https://example.com/xxx.js</span></span> 使用 http (s) 地址加载 js<br><span class="red">combine/xxx.js,xxx.js</span> 使用 jsdelivr 的 combine 功能加载 (不推荐)<br><span class="red">npm/xxx/xxx.js</span> 使用 npm 源加载 js<br><span class="red">gh/xxx/xxx.js</span> 使用 gh 源加载 js<br><span class="red">xxx.js</span> 从本地加载 js<br>优先级如下:<br><span class="red">http&gt;combine&gt;npm&gt;gh &gt; 本地</span></p><div class="tags"><a href="/tags/Hexo/" rel="tag"><i class="ic i-tag"></i> Hexo</a> <a href="/tags/Shoka/" rel="tag"><i class="ic i-tag"></i> Shoka</a> <a href="/tags/jsdelivr/" rel="tag"><i class="ic i-tag"></i> jsdelivr</a></div></div><footer><div class="meta"><span class="item"><span class="icon"><i class="ic i-calendar-check"></i> </span><span class="text">更新于</span> <time title="修改时间2023-07-01 14:05:26" itemprop="dateModified" datetime="2023-07-01T14:05:26+08:00">2023-07-01</time> </span><span id="2023/07/01/shoka主题速度优化-拆分jsdelivr/" class="item leancloud_visitors" data-flag-title="shoka 主题速度优化 - 拆分 jsdelivr" title="阅读次数"><span class="icon"><i class="ic i-eye"></i> </span><span class="text">阅读次数</span> <span class="leancloud-visitors-count"></span> <span class="text"></span></span></div><div class="reward"><button><i class="ic i-heartbeat"></i> 赞赏</button><p>请我喝[茶]~( ̄▽ ̄)~*</p><div id="qr"><div><img data-src="/images/wechatpay.png" alt="Hito Li 微信支付"><p>微信支付</p></div><div><img data-src="/images/alipay.png" alt="Hito Li 支付宝"><p>支付宝</p></div></div></div><div id="copyright"><ul><li class="author"><strong>本文作者: </strong>Hito Li <i class="ic i-at"><em>@</em></i>涛声依旧</li><li class="link"><strong>本文链接:</strong> <a href="https://hitoli.com/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/" title="shoka 主题速度优化 - 拆分 jsdelivr">https://hitoli.com/2023/07/01/shoka主题速度优化-拆分jsdelivr/</a></li><li class="license"><strong>版权声明: </strong>本站所有文章除特别声明外,均采用 <span class="exturl" data-url="aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9kZWVkLnpo"><i class="ic i-creative-commons"><em>(CC)</em></i>BY-NC-SA</span> 许可协议。转载请注明出处!</li></ul></div></footer></article></div><div class="post-nav"><div class="item left"><a href="/2023/05/30/http%E8%AF%B7%E6%B1%82%E4%B9%8BrestTemplate%E9%85%8D%E7%BD%AE%E8%B6%85%E6%97%B6%E6%97%B6%E9%97%B4/" itemprop="url" rel="prev" data-background-image="https:&#x2F;&#x2F;nas.hitoli.com:18014&#x2F;images&#x2F;2022&#x2F;10&#x2F;29&#x2F;6833939bly1gipetlbztpj20zk0m84qp.jpg" title="http请求之restTemplate配置超时时间"><span class="type">上一篇</span> <span class="category"><i class="ic i-flag"></i> 解决问题</span><h3>http请求之restTemplate配置超时时间</h3></a></div><div class="item right"><a href="/2023/07/08/%E8%A7%A3%E5%86%B3Lombok%E6%8A%A5%E9%94%99/" itemprop="url" rel="next" data-background-image="https:&#x2F;&#x2F;nas.hitoli.com:18014&#x2F;images&#x2F;2022&#x2F;10&#x2F;29&#x2F;6833939bly1gipexe4oykj20zk0m87ji.jpg" title="解决Lombok报错"><span class="type">下一篇</span> <span class="category"><i class="ic i-flag"></i> 解决问题</span><h3>解决Lombok报错</h3></a></div></div><div class="wrap" id="comments"></div></div><div id="sidebar"><div class="inner"><div class="panels"><div class="inner"><div class="contents panel pjax" data-title="文章目录"><ol class="toc"><li class="toc-item toc-level-4"><a class="toc-link" href="#%E5%89%8D%E8%A8%80"><span class="toc-number">1.</span> <span class="toc-text">前言</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E6%8B%86%E5%88%86-jsdelivr"><span class="toc-number">2.</span> <span class="toc-text">拆分 jsdelivr</span></a></li></ol></div><div class="related panel pjax" data-title="系列文章"><ul><li><a href="/2022/09/14/Hexo%E5%AE%89%E8%A3%85%E6%91%B8%E7%B4%A2/" rel="bookmark" title="Hexo安装摸索">Hexo安装摸索</a></li><li><a href="/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/" rel="bookmark" title="Hexo + Theme.Shoka + algolia搜索踩坑">Hexo + Theme.Shoka + algolia搜索踩坑</a></li><li><a href="/2022/09/26/%E8%A7%A3%E5%86%B3Hexo-Shoka%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%E7%9A%84%E9%97%AE%E9%A2%98/" rel="bookmark" title="解决Hexo+Shoka背景音乐无法播放的问题">解决Hexo+Shoka背景音乐无法播放的问题</a></li><li><a href="/2022/10/21/Hexo-Theme-Shoka-Valine%E8%AF%84%E8%AE%BA%E9%85%8D%E7%BD%AE/" rel="bookmark" title="Hexo + Theme.Shoka + Valine评论配置">Hexo + Theme.Shoka + Valine评论配置</a></li><li class="active"><a href="/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/" rel="bookmark" title="shoka主题速度优化-拆分jsdelivr">shoka主题速度优化-拆分jsdelivr</a></li></ul></div><div class="overview panel" data-title="站点概览"><div class="author" itemprop="author" itemscope itemtype="http://schema.org/Person"><img class="image" itemprop="image" alt="Hito Li" data-src="/images/avatar.jpg"><p class="name" itemprop="name">Hito Li</p><div class="description" itemprop="description">天生我材必有用</div></div><nav class="state"><div class="item posts"><a href="/archives/"><span class="count">50</span> <span class="name">文章</span></a></div><div class="item categories"><a href="/categories/"><span class="count">22</span> <span class="name">分类</span></a></div><div class="item tags"><a href="/tags/"><span class="count">87</span> <span class="name">标签</span></a></div></nav><div class="social"><span class="exturl item weibo" data-url="aHR0cHM6Ly93ZWliby5jb20vdS8xMDYxNDYwNzQ1" title="https:&#x2F;&#x2F;weibo.com&#x2F;u&#x2F;1061460745"><i class="ic i-weibo"></i></span> <span class="exturl item douban" data-url="aHR0cHM6Ly93d3cuZG91YmFuLmNvbS9wZW9wbGUvMjU5Mzc2NTY0" title="https:&#x2F;&#x2F;www.douban.com&#x2F;people&#x2F;259376564"><i class="ic i-douban"></i></span> <span class="exturl item music" data-url="aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvdXNlci9ob21lP2lkPTEwNTQ2NzQ2Mw==" title="https:&#x2F;&#x2F;music.163.com&#x2F;#&#x2F;user&#x2F;home?id&#x3D;105467463"><i class="ic i-cloud-music"></i></span> <a href="/about/me" title="about&#x2F;me" class="item about"><i class="ic i-address-card"></i></a></div><ul class="menu"><li class="item"><a href="/" rel="section"><i class="ic i-home"></i>首页</a></li><li class="item"><a href="/about/me" rel="section"><i class="ic i-user"></i>关于</a></li><li class="item dropdown"><a href="javascript:void(0);"><i class="ic i-feather"></i>文章</a><ul class="submenu"><li class="item"><a href="/archives/" rel="section"><i class="ic i-list-alt"></i>归档</a></li><li class="item"><a href="/categories/" rel="section"><i class="ic i-th"></i>分类</a></li><li class="item"><a href="/tags/" rel="section"><i class="ic i-tags"></i>标签</a></li></ul></li><li class="item"><span class="exturl" data-url="aHR0cHM6Ly93d3cuZm9yZXZlcmJsb2cuY24vZ28uaHRtbA=="><i class="ic i-paper-plane"></i>虫洞</span></li></ul></div></div></div><ul id="quick"><li class="prev pjax"><a href="/2023/05/30/http%E8%AF%B7%E6%B1%82%E4%B9%8BrestTemplate%E9%85%8D%E7%BD%AE%E8%B6%85%E6%97%B6%E6%97%B6%E9%97%B4/" rel="prev" title="上一篇"><i class="ic i-chevron-left"></i></a></li><li class="up"><i class="ic i-arrow-up"></i></li><li class="down"><i class="ic i-arrow-down"></i></li><li class="next pjax"><a href="/2023/07/08/%E8%A7%A3%E5%86%B3Lombok%E6%8A%A5%E9%94%99/" rel="next" title="下一篇"><i class="ic i-chevron-right"></i></a></li><li class="percent"></li></ul></div></div><div class="dimmer"></div></div></main><footer id="footer"><div class="inner"><div class="widgets"><div class="rpost pjax"><h2>随机文章</h2><ul><li class="item"><div class="breadcrumb"><a href="/categories/%E5%B7%A5%E4%BD%9C/" title="分类于 工作">工作</a> <i class="ic i-angle-right"></i> <a href="/categories/%E5%B7%A5%E4%BD%9C/IDE/" title="分类于 IDE">IDE</a></div><span><a href="/2023/02/18/%E4%BF%AE%E6%94%B9IntellIJ-IDE%E8%83%8C%E6%99%AF%E8%89%B2%E5%92%8C%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F/" title="修改IntellIJ IDE背景色和字体大小">修改IntellIJ IDE背景色和字体大小</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E7%94%9F%E6%B4%BB/" title="分类于 生活">生活</a> <i class="ic i-angle-right"></i> <a href="/categories/%E7%94%9F%E6%B4%BB/%E6%97%A5%E5%B8%B8%E8%AE%B0%E5%BD%95/" title="分类于 日常记录">日常记录</a></div><span><a href="/2023/10/29/%E7%BB%99%E6%88%91%E7%9A%84%E8%80%81%E7%AC%94%E8%AE%B0%E6%9C%AC%E6%B8%85%E7%90%86%E7%81%B0%E5%B0%98/" title="给我的老笔记本清理灰尘">给我的老笔记本清理灰尘</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E5%B7%A5%E4%BD%9C/" title="分类于 工作">工作</a> <i class="ic i-angle-right"></i> <a href="/categories/%E5%B7%A5%E4%BD%9C/Vue/" title="分类于 Vue">Vue</a></div><span><a href="/2022/11/09/Vue%E6%8C%89%E7%8E%AF%E5%A2%83%E8%AE%BE%E7%BD%AE%E7%BC%96%E8%AF%91%E9%A1%B9%E7%9B%AE/" title="Vue按环境设置编译项目">Vue按环境设置编译项目</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/Linux/" title="分类于 Linux">Linux</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/%E6%9C%8D%E5%8A%A1/" title="分类于 服务">服务</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/%E6%9C%8D%E5%8A%A1/Nginx/" title="分类于 Nginx">Nginx</a></div><span><a href="/2022/11/08/Nginx%E9%85%8D%E7%BD%AE-%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/" title="Nginx配置-反向代理">Nginx配置-反向代理</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" title="分类于 Docker">Docker</a></div><span><a href="/2022/10/21/%E6%9E%81%E7%A9%BA%E9%97%B4Docker%E7%89%88mariadb%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/" title="极空间Docker版mariadb安装与配置">极空间Docker版mariadb安装与配置</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/Linux/" title="分类于 Linux">Linux</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/Shell/" title="分类于 Shell">Shell</a></div><span><a href="/2022/11/02/2-dev-null%E5%92%8C-dev-null-2-1%E5%92%8C2-1-dev-null%E7%9A%84%E5%8C%BA%E5%88%AB/" title="2&gt;&#x2F;dev&#x2F;null和&gt;&#x2F;dev&#x2F;null 2&gt;&amp;1和2&gt;&amp;1&gt;&#x2F;dev&#x2F;null的区别">2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的区别</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" title="分类于 Docker">Docker</a></div><span><a href="/2022/10/20/%E6%9E%81%E7%A9%BA%E9%97%B4Docker%E7%89%88Wordpress%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/" title="极空间Docker版Wordpress安装与配置">极空间Docker版Wordpress安装与配置</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" title="分类于 Docker">Docker</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/Hexo/" title="分类于 Hexo">Hexo</a></div><span><a href="/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/" title="shoka主题速度优化-拆分jsdelivr">shoka主题速度优化-拆分jsdelivr</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/Windows/" title="分类于 Windows">Windows</a> <i class="ic i-angle-right"></i> <a href="/categories/Windows/%E5%B7%A5%E5%85%B7/" title="分类于 工具">工具</a></div><span><a href="/2022/10/11/svn%E5%BA%93%E8%BD%ACgit%E5%BA%93/" title="svn库转git库">svn库转git库</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E5%B7%A5%E4%BD%9C/" title="分类于 工作">工作</a> <i class="ic i-angle-right"></i> <a href="/categories/%E5%B7%A5%E4%BD%9C/%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/" title="分类于 项目部署">项目部署</a></div><span><a href="/2023/04/16/K8S%E9%A1%B9%E7%9B%AE%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2%E6%AD%A5%E9%AA%A4/" title="K8S项目本地部署步骤">K8S项目本地部署步骤</a></span></li></ul></div><div><h2>最新评论</h2><ul class="leancloud-recent-comment"></ul></div></div><div class="status"><div class="copyright">&copy; 2010 <span itemprop="copyrightYear">2023</span> <span class="with-love"><i class="ic i-sakura rotate"></i> </span><span class="author" itemprop="copyrightHolder">Hito Li @ ☆∵∴Hito∴∵★</span></div><div class="count"><span class="post-meta-item-icon"><i class="ic i-chart-area"></i> </span><span title="站点总字数">100k 字</span> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="ic i-coffee"></i> </span><span title="站点阅读时长">1:31</span></div><div class="powered-by">基于 <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlv">Hexo</span> & Theme.<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FtZWhpbWUvaGV4by10aGVtZS1zaG9rYQ==">Shoka</span></div></div></div></footer></div><script data-config type="text/javascript">var LOCAL={path:"2023/07/01/shoka主题速度优化-拆分jsdelivr/",favicon:{show:"´3哎呀呀",hide:"(´Д`)真糟糕!"},search:{placeholder:"文章搜索",empty:"关于 「 ${query} 」,什么也没搜到",stats:"${time} ms 内找到 ${hits} 条结果"},valine:!0,fancybox:!0,copyright:'复制成功,转载请遵守 <i class="ic i-creative-commons"></i>BY-NC-SA 协议。',ignores:[function(e){return e.includes("#")},function(e){return new RegExp(LOCAL.path+"$").test(e)}]}</script><script src="https://nas.hitoli.com:18003/assets/polyfill.js"></script><script src="https://nas.hitoli.com:18003/assets/pace.min.js"></script><script src="https://nas.hitoli.com:18003/assets/pjax.min.js"></script><script src="https://nas.hitoli.com:18003/assets/fetch.umd.js"></script><script src="https://nas.hitoli.com:18003/assets/anime.min.js"></script><script src="https://nas.hitoli.com:18003/assets/algoliasearch-lite.umd.min.js"></script><script src="https://nas.hitoli.com:18003/assets/instantsearch.production.min.js"></script><script src="https://nas.hitoli.com:18003/assets/lozad.min.js"></script><script src="https://nas.hitoli.com:18003/assets/quicklink.umd.min.js"></script><script src="https://nas.hitoli.com:18003/assets/jquery.min.js,jquery.fancybox.min.js,jquery.justifiedGallery.min.js" async></script><script src="https://nas.hitoli.com:18003/assets/MiniValine.min.js"></script><script src="https://nas.hitoli.com:18003/assets/copy-tex.min.js" async></script><script src="https://nas.hitoli.com:18003/assets/frappe-charts.min.iife.js"></script><script src="/js/app.js?v=0.0.0"></script></body></html>