Site updated: 2024-01-25 14:50:28
This commit is contained in:
1 parent
d67cec3b41
commit
d3ad91bc4a
207 files changed
+213
-213
No files matched your search
@@ -110,9 +110,9 @@
|
||||
"Windows",
|
||||
"工具",
|
||||
"SpringBoot",
|
||||
"快速部署",
|
||||
"Bat",
|
||||
"批处理",
|
||||
"快速部署"
|
||||
"批处理"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -175,7 +175,7 @@
|
||||
"url": "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",
|
||||
"date_published": "2023-06-30T17:15:00.000Z",
|
||||
"content_html": "<h4 id=\"前言\"><a class=\"anchor\" href=\"#前言\">#</a> 前言</h4>\n<div class=\"note primary\">\n<p>该篇文章介绍了如何对 shoka 主题进行 jsdelivr 聚合拆分,以便使用国内镜像源和异步加载,从而优化网站速度。具体操作包括更改模板、注册 helper 和更改配置。其中,推荐使用 advVendors 配置,可自定义加载源和 js 文件名,同时支持异步加载、pjax 刷新和 integrity 防 XXS 等特性。</p>\n</div>\n<p>众所周知,jsdelivr 在国内的速度可以用慢的一批来形容而 shoka 主题使用了 jsdelivr 的 combine 功能加载第三方 js, 而 combine 在国内没有镜像源并且阻断了使用 CDN 并发加速的道路,本篇博文会将 jsdelivr 聚合拆分为几个独立的 js, 以便使用国内镜像源和异步加载。</p>\n<div class=\"note info\">\n<p>此方案相较于本地化而言有较大速度优势,尤其在 CDN 并发加持下</p>\n</div>\n<h4 id=\"拆分-jsdelivr\"><a class=\"anchor\" href=\"#拆分-jsdelivr\">#</a> 拆分 jsdelivr</h4>\n<ol>\n<li>更改模板</li>\n</ol>\n<p>打开 <span class=\"red\">shoka\\layout_partials\\layout.njk</span>,找到第 144 行左右:</p>\n<p><figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"tag\"><<span class=\"name\">script</span> <span class=\"attr\">src</span>=<span class=\"string\">"https://cdn.polyfill.io/v3/polyfill.js"</span>></span><span class=\"tag\"></<span class=\"name\">script</span>></span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _vendor_js() <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _js('app.js') <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> partial('_partials/third-party/baidu-analytics.njk', <span class=\"symbol\">&#123;</span><span class=\"symbol\">&#125;</span>, <span class=\"symbol\">&#123;</span>cache: true<span class=\"symbol\">&#125;</span>) <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br></pre></td></tr></table></figure></p>\n<p>更改为如下内容:</p>\n<p><figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"tag\"><<span class=\"name\">script</span> <span class=\"attr\">src</span>=<span class=\"string\">"https://cdn.polyfill.io/v3/polyfill.js"</span>></span><span class=\"tag\"></<span class=\"name\">script</span>></span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span>%- if theme.advVendors.enable %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\">\t<span class=\"symbol\">&#123;</span>% for i in _list_vendor_js() %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\">\t\t<span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _adv_vendor_js(i) <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\">\t<span class=\"symbol\">&#123;</span>% endfor %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span>%- else %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _vendor_js() <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span>%- endif %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _js('app.js')<span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> partial('_partials/third-party/baidu-analytics.njk', <span class=\"symbol\">&#123;</span><span class=\"symbol\">&#125;</span>, <span class=\"symbol\">&#123;</span>cache: true<spanLine truncated
|
||||
"content_html": "<h4 id=\"前言\"><a class=\"anchor\" href=\"#前言\">#</a> 前言</h4>\n<div class=\"note primary\">\n<p>该篇文章介绍了如何对 shoka 主题进行 jsdelivr 聚合拆分,以便使用国内镜像源和异步加载,从而优化网站速度。具体操作包括更改模板、注册 helper 和更改配置。其中,推荐使用 advVendors 配置,可自定义加载源和 js 文件名,同时支持异步加载、pjax 刷新和 integrity 防 XXS 等特性。</p>\n</div>\n<p>众所周知,jsdelivr 在国内的速度可以用慢的一批来形容而 shoka 主题使用了 jsdelivr 的 combine 功能加载第三方 js, 而 combine 在国内没有镜像源并且阻断了使用 CDN 并发加速的道路,本篇博文会将 jsdelivr 聚合拆分为几个独立的 js, 以便使用国内镜像源和异步加载。</p>\n<div class=\"note info\">\n<p>此方案相较于本地化而言有较大速度优势,尤其在 CDN 并发加持下</p>\n</div>\n<h4 id=\"拆分-jsdelivr\"><a class=\"anchor\" href=\"#拆分-jsdelivr\">#</a> 拆分 jsdelivr</h4>\n<ol>\n<li>更改模板</li>\n</ol>\n<p>打开 <span class=\"red\">shoka\\layout\\_partials\\layout.njk</span>,找到第 144 行左右:</p>\n<p><figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"tag\"><<span class=\"name\">script</span> <span class=\"attr\">src</span>=<span class=\"string\">"https://cdn.polyfill.io/v3/polyfill.js"</span>></span><span class=\"tag\"></<span class=\"name\">script</span>></span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _vendor_js() <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _js('app.js') <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> partial('_partials/third-party/baidu-analytics.njk', <span class=\"symbol\">&#123;</span><span class=\"symbol\">&#125;</span>, <span class=\"symbol\">&#123;</span>cache: true<span class=\"symbol\">&#125;</span>) <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br></pre></td></tr></table></figure></p>\n<p>更改为如下内容:</p>\n<p><figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"tag\"><<span class=\"name\">script</span> <span class=\"attr\">src</span>=<span class=\"string\">"https://cdn.polyfill.io/v3/polyfill.js"</span>></span><span class=\"tag\"></<span class=\"name\">script</span>></span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span>%- if theme.advVendors.enable %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\">\t<span class=\"symbol\">&#123;</span>% for i in _list_vendor_js() %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\">\t\t<span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _adv_vendor_js(i) <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\">\t<span class=\"symbol\">&#123;</span>% endfor %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span>%- else %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _vendor_js() <span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span>%- endif %<span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> _js('app.js')<span class=\"symbol\">&#125;</span><span class=\"symbol\">&#125;</span></span><br><span class=\"line\"><span class=\"symbol\">&#123;</span><span class=\"symbol\">&#123;</span> partial('_partials/third-party/baidu-analytics.njk', <span class=\"symbol\">&#123;</span><span class=\"symbol\">&#125;</span>, <span class=\"symbol\">&#123;</span>cache: true<spLine truncated
|
||||
"tags": [
|
||||
"极空间",
|
||||
"Docker",
|
||||
|
||||
Reference in new issue
Block a user