Site updated: 2023-07-01 14:06:53
This commit is contained in:
6
atom.xml
6
atom.xml
@@ -25,9 +25,7 @@
|
||||
<div class="note primary">
|
||||
<p>该篇文章介绍了如何对 shoka 主题进行 jsdelivr 聚合拆分,以便使用国内镜像源和异步加载,从而优化网站速度。具体操作包括更改模板、注册 helper 和更改配置。其中,推荐使用 advVendors 配置,可自定义加载源和 js 文件名,同时支持异步加载、pjax 刷新和 integrity 防 XXS 等特性。</p>
|
||||
</div>
|
||||
<p>众所周知,jsdelivr 在国内的速度可以用慢的一批来形容<br />
|
||||
而 shoka 主题使用了 jsdelivr 的 combine 功能加载第三方 js, 而 combine 在国内没有镜像源<br />
|
||||
并且阻断了使用 CDN 并发加速的道路,本篇博文会将 jsdelivr 聚合拆分为几个独立的 js, 以便使用国内镜像源和异步加载。</p>
|
||||
<p>众所周知,jsdelivr 在国内的速度可以用慢的一批来形容而 shoka 主题使用了 jsdelivr 的 combine 功能加载第三方 js, 而 combine 在国内没有镜像源并且阻断了使用 CDN 并发加速的道路,本篇博文会将 jsdelivr 聚合拆分为几个独立的 js, 以便使用国内镜像源和异步加载。</p>
|
||||
<div class="note info">
|
||||
<p>此方案相较于本地化而言有较大速度优势,尤其在 CDN 并发加持下</p>
|
||||
</div>
|
||||
@@ -37,7 +35,7 @@
|
||||
</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><span class="token comment"></span></pre></td></tr><tr><td data-num="5"></td><td><pre>&#123;&#123; _vendor_js() &#125;&#125;</pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token comment"></span></pre></td></tr><tr><td data-num="7"></td><td><pre>&#123;&#123; _js('app.js')&#125;&#125;</pre></td></tr><tr><td data-num="8"></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">
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user