十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用Jekyll+GitHub Pages搭建个人静态博客

用Jekyll+GitHub Pages搭建个人静态博客 1. 这不是“搭个网站”而是一次技术主权的回归你有没有试过在某个平台写了一年文章突然发现账号被限流、内容被折叠、后台数据导不出或者更糟——平台改版、关停、迁移你辛辛苦苦积累的几百篇笔记、读者留言、SEO权重一夜之间归零我见过太多朋友在知乎写满三年深度技术复盘结果首页推荐位全被短视频挤占也见过运营了五年的微信公众号因为一次误触违规词整条内容链路被静默降权。这些不是偶然而是中心化平台天然的运行逻辑你的内容只是它算法喂养的燃料。而Github.io Jekyll这条路本质上是一次“技术主权”的主动拿回——它不依赖任何商业平台的规则许可不向任何第三方交出数据控制权不为流量分成让渡内容解释权。你写的每行Markdown都真实存于你自己的Git仓库里你改的每个CSS变量都直接渲染在浏览器端你发布的每篇文章URL由你定义、路径由你规划、备份由你掌控。这不是“折腾”而是把博客这件事从“寄居”变成“定居”。核心关键词Github.io、个人博客网站、Jekyll、Ruby、静态网站背后其实是一套完整的技术契约Github.io提供免费、稳定、全球CDN加速的托管服务Jekyll作为最成熟的静态站点生成器用纯文本驱动页面构建Ruby是它的底层语言支撑但你几乎不用碰最终输出的是零后端、无数据库、纯HTML/CSS/JS的静态网站——这意味着极高的加载速度、极低的运维成本、极强的安全性以及彻底规避服务器被黑、数据库被拖库的风险。适合谁不是只给程序员看的。如果你是设计师可以用它展示作品集并完全控制排版细节如果你是教师能一键生成带数学公式的教学文档站如果你是自由撰稿人可实现全文本版本管理多设备协同写作甚至退休工程师也能用它建一个家族照片与口述史存档站。它不要求你会写JavaScript框架但要求你愿意花2小时理解“模板继承”和“Front Matter”的逻辑——这2小时换来的是未来十年内容资产的自主权。我从2016年开始用Jekyll搭第一版技术博客中间经历过Hexo迁移、Hugo测试、甚至自研简易生成器的尝试最后又稳稳落回Jekyll。不是因为它最炫而是它最“省心”社区文档成熟到连Windows用户装Ruby都不会报错主题生态丰富到你花15分钟就能换一套响应式UICI/CD流程清晰到每次git push自动构建部署连刷新缓存都不用手动操作。下面我就带你从零开始亲手把这套“内容主权系统”装进你自己的GitHub账户里。2. 为什么选Jekyll而不是Hexo一场关于长期主义的务实选择网络上总有人问“jekyll和hexo哪个好”这个问题本身就有陷阱——它预设了二者是同维度的竞争者而实际上它们解决的是不同阶段、不同诉求的问题。我用Hexo搭过三套博客也用Jekyll维护着四套生产环境站点含客户项目结论很明确如果你追求“今天装完明天发文章”Hexo确实更快上手但如果你打算用这个博客活过三年、五年、十年Jekyll才是那个默默扛住时间磨损的底盘。先说技术底座差异。Hexo基于Node.js启动快、插件多、命令行交互友好新手第一次执行hexo init看到本地预览页面弹出来确实有成就感。但问题藏在后面Node版本升级频繁一个major version更新就可能让旧插件集体失效npm依赖树深node_modules动辄几百MBCI构建时经常因网络抖动失败更麻烦的是Hexo的渲染引擎对中文标点、Markdown嵌套、Liquid语法兼容性较弱——我曾为解决“引用块里嵌套代码高亮失效”问题翻了三天源码才定位到highlight.js和prismjs的加载时序冲突。Jekyll则走另一条路它用Ruby做编译内核表面看似乎“老派”实则换来的是惊人的稳定性。Ruby语言本身十年未大改Jekyll核心库自2018年起就进入“维护模式”所有新功能都通过插件机制注入主干代码近乎冻结。这意味着什么意味着你2016年写的_config.yml配置今天照样能跑通你2019年fork的主题只要没删关键layout文件bundle exec jekyll serve依然秒启。我有个客户的技术文档站2017年上线至今未更新过Jekyll版本仅靠定期bundle update升级插件就扛过了三次GitHub Pages底层环境升级。再看生态适配。很多人抱怨Jekyll“主题少”其实是误解。Jekyll官方主题市场jekyllthemes.org收录超2000个主题其中80%支持开箱即用的配置项字体大小、配色方案、侧边栏开关、评论系统切换、搜索框启用……而Hexo主题虽多但70%需手动修改layout.ejs或调整Webpack配置才能启用暗色模式。更关键的是Jekyll与GitHub Pages原生深度集成无需额外配置CI脚本_config.yml里一行plugins: [jekyll-archives]就能自动生成分类归档页一行remote_theme: daattali/beautiful-jekyll就能远程拉取主题并热更新——这种“平台级信任”是Hexo必须靠gh-pages插件模拟的妥协方案。还有个隐形优势常被忽略Jekyll对非技术用户的友好度更高。它默认使用Liquid模板语言语法极简——{{ page.title }}输出标题{% for post in site.posts %}遍历文章没有JavaScript的闭包陷阱没有Vue的响应式劫持概念。我教一位高中语文老师用Jekyll建诗词赏析站她第三天就能自己修改post.html模板在每篇文章末尾加一句“本文适合朗读时长约2分17秒”。而Hexo用EJS或Nunjucks变量作用域、异步渲染、模板继承链对非开发者就是一道认知墙。当然Jekyll不是没有代价。Ruby环境在Windows上曾是痛点但现在rubyinstaller-3.1.0自带DevKitbundle install成功率超95%本地预览速度略慢于Hexo但配合--incremental参数和jekyll-cache插件千篇文章下热重载控制在800ms内。这些“代价”换来的是一套经得起时间检验的确定性——当你第100次git push时不会担心某天早上醒来发现博客打不开只因为一个npm包作者删库跑路。提示别被“Ruby”吓退。你不需要写Ruby代码Jekyll就像一台全自动咖啡机——你只管放豆子Markdown、选口味主题、按按钮build它自己完成萃取渲染、打奶泡生成HTML、出杯部署。真正要学的只有三样YAML配置语法、Liquid模板基础、Git基本操作。3. 从零搭建手把手完成Github.io个人博客全流程现在我们进入实操环节。整个过程分为五个阶段环境准备→本地初始化→内容创作→主题定制→自动部署。我会把每个步骤拆解到具体命令、配置项含义、常见卡点及绕过方案确保你在任何操作系统Windows/macOS/Linux上都能一次成功。3.1 环境准备三步建立可靠开发基线第一步永远不是敲命令而是确认你的系统已具备干净的Ruby环境。很多教程跳过这步导致后续bundle install报错百出。请严格按顺序执行卸载残留Ruby版本尤其Windows用户打开终端执行ruby -v which ruby如果显示ruby 2.4.x或ruby 2.5.x说明存在旧版本。Windows用户请去控制面板→程序和功能卸载所有含“RubyInstaller”的条目macOS用户执行brew uninstall rubyLinux用户用sudo apt remove ruby*Ubuntu或sudo yum remove ruby*CentOS。安装最新稳定版RubyWindows访问 rubyinstaller.org 下载RubyDevKit 3.1.x安装包安装时务必勾选“Add Ruby executables to your PATH”和“Install Tcl/Tk support”。macOS执行brew install ruby需先装Homebrew然后运行echo export PATH/opt/homebrew/bin:$PATH ~/.zshrc source ~/.zshrc。LinuxUbuntusudo apt update sudo apt install -y curl git build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 autoconf bison build-essential libffi-dev libgdbm-dev libgdbm-compat-dev libncurses5-dev libncursesw5-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev libpq-dev libmysqlclient-dev curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/install.sh | bash echo export RBENV_ROOT$HOME/.rbenv ~/.zshrc echo command -v rbenv /dev/null || export PATH$HOME/.rbenv/bin:$PATH ~/.zshrc echo eval $(rbenv init - zsh) ~/.zshrc source ~/.zshrc rbenv install 3.1.4 rbenv global 3.1.4验证并升级Bundler执行以下命令确保RubyGems和Bundler为最新gem update --system gem install bundler bundle -v # 应显示 2.4.x 或更高注意如果bundle -v报错“command not found”说明PATH未生效。Windows用户重启命令提示符macOS/Linux用户执行source ~/.zshrc或~/.bash_profile。完成这三步后你的Ruby环境已达到Jekyll官方要求的“黄金基线”。此时执行ruby -v应显示ruby 3.1.4p223gem -v显示3.4.xbundle -v显示2.4.x。任何一项不符请返回上一步排查——这是后续所有步骤成功的前提。3.2 本地初始化创建可立即预览的博客骨架现在开始构建博客本体。这里的关键是不直接fork主题仓库而是用Jekyll官方脚手架生成纯净骨架再逐步叠加功能。这样能避免主题作者预置的冗余配置干扰学习路径。创建项目目录并初始化mkdir my-blog cd my-blog bundle init echo gem jekyll, ~ 4.3 Gemfile bundle install bundle exec jekyll new . --force--force参数强制覆盖空目录避免提示“目录非空”。此时目录结构如下my-blog/ ├── _config.yml # 全局配置 ├── _posts/ # 文章存放目录 ├── _layouts/ # 页面模板 ├── index.md # 首页 └── Gemfile # 依赖清单启动本地服务验证执行bundle exec jekyll serve --livereload终端会输出类似Server address: http://127.0.0.1:4000/。打开浏览器访问该地址你应该看到默认的Jekyll欢迎页。--livereload参数启用热重载——稍后修改任何文件页面会自动刷新无需手动F5。理解核心配置文件打开_config.yml重点修改以下几项其他保持默认# 网站基础信息 title: 我的技术笔记 email: your-emailexample.com description: 记录学习、思考与实践 url: https://your-github-username.github.io # 替换为你的GitHub用户名 # 构建选项 plugins: - jekyll-feed - jekyll-sitemap - jekyll-seo-tag # 本地开发优化 exclude: - Gemfile - Gemfile.lock - node_modules关键原理url字段必须填你未来的GitHub Pages地址格式为https://用户名.github.io否则生成的RSS链接、Open Graph标签会指向localhost导致SEO失效。Jekyll会在构建时自动将/路径解析为根域名所以不用写/blog之类子路径。此时你的本地博客已可运行。下一步我们往里面填充真正属于你的内容。3.3 内容创作用Markdown写出第一篇可发布文章Jekyll的内容创作极度简单但有几个隐藏规则决定文章能否正确归档、被搜索收录、在首页列表显示。文章命名规范在_posts/目录下新建文件必须按YYYY-MM-DD-文章标题.md格式命名。例如2023-10-15-如何用Jekyll搭建个人博客.md注意日期必须是发布日期不是创建日期标题部分用英文短横线-连接单词不能有空格、中文、特殊符号文件扩展名必须是.md小写。Front Matter必备字段每篇文章开头必须用三道短横线包裹YAML元数据这是Jekyll识别文章的唯一方式。标准模板如下--- layout: post title: 如何用Jekyll搭建个人博客 date: 2023-10-15 14:30:00 0800 categories: [Jekyll, 博客搭建] tags: [GitHub Pages, 静态网站] author: 张三 excerpt: 本文手把手教你从零开始用Jekyll和GitHub Pages搭建专属个人博客... --- 正文从这里开始...各字段作用layout: post指定使用_layouts/post.html模板渲染date精确到分钟影响文章排序新文章在前categories数组格式用于生成分类归档页tags同上用于标签云excerpt摘要内容首页列表显示此段文字必须手动填写Jekyll不会自动截取前200字。正文写作技巧数学公式用$$...$$包裹LaTeX语法如$$Emc^2$$代码块用lang包裹如python print(Hello) 图片放在/assets/img/目录下引用为![](/assets/img/screenshot.png)内链用[文字](/2023/10/15/文章标题.html)Jekyll会自动解析为绝对路径。实操心得我习惯在VS Code中安装“Jekyll Snippets”插件输入jekyll-post自动补全Front Matter模板节省80%重复劳动。另外所有图片建议用TinyPNG压缩后再上传GitHub Pages对单文件大小限制为100MB但过大的图片会拖慢首屏加载。完成一篇后保存文件浏览器会自动刷新新文章已出现在首页。此时你已掌握Jekyll内容生产的全部核心动作。3.4 主题定制不写CSS也能做出专业级视觉效果Jekyll的主题机制是其最大优势——你无需懂CSS就能获得媲美商业建站工具的视觉表现。定制分三层基础主题替换、配色微调、功能增强。更换官方认证主题访问 Jekyll Themes官网 筛选“Free Open Source”找到心仪主题如minimal-mistakes。按其README操作在_config.yml中添加remote_theme: mmistakes/minimal-mistakes plugins: - jekyll-include-cache删除本地_layouts/、_includes/、assets/目录主题自带执行bundle update拉取新主题依赖。原理remote_theme让Jekyll直接从GitHub仓库读取主题文件无需fork或clone。所有更新通过bundle update同步彻底解决“主题升级难”痛点。配色与字体一键切换以minimal-mistakes为例只需修改_config.yml中两行# 主题配色方案 theme_skin: dark # 可选default, dark, airy, mint, plum # 字体设置 google_fonts: - text: Lora:400,400i,700,700i display: swap保存后刷新整个站点立刻切换暗色模式或更换衬线字体。这种“配置即生效”的设计让视觉调整变得像换手机壁纸一样简单。增强功能模块比如添加搜索功能安装插件bundle add jekyll-search在_config.yml中启用plugins: - jekyll-search search: true在_includes/header.html中插入搜索框代码主题文档提供具体位置。评论系统同理jekyll-comments插件支持Disqus、Gitalk、Utterances三种方案只需填入对应平台的ID无需写一行前端代码。注意事项所有主题增强功能务必查阅该主题的README.md中“Customization”章节。不同主题的配置项名称、启用方式差异很大盲目套用会导致构建失败。至此你的博客已具备专业外观与基础交互能力。最后一步让它真正上线。3.5 自动部署一次git push全球CDN即时生效GitHub Pages的部署机制是“零配置自动化”——你只需把代码推送到特定分支GitHub后台会自动触发Jekyll构建并将生成的HTML文件分发到全球CDN节点。创建GitHub仓库登录GitHub新建仓库仓库名必须为用户名.github.io如zhangsan.github.io不要初始化README保持仓库为空复制仓库SSH地址形如gitgithub.com:zhangsan/zhangsan.github.io.git。关联本地项目在本地博客目录执行git init git remote add origin gitgithub.com:zhangsan/zhangsan.github.io.git git checkout -b main # GitHub默认分支已改为main git add . git commit -m init blog git push -u origin main启用GitHub Pages进入仓库Settings → Pages → Build and deploymentSource选择“Deploy from a branch”Branch选mainFolder选/(root)点击SaveGitHub会自动触发构建。关键细节Jekyll构建日志可在Actions标签页查看。首次构建通常需2-5分钟成功后页面URL即为https://zhangsan.github.io。此后每次git pushGitHub都会自动重建并部署全程无需人工干预。验证与调试访问https://zhangsan.github.io检查首页、文章页、归档页是否正常查看浏览器开发者工具Console确认无404资源请求在GitHub仓库Settings → Pages确认状态为“Your site is published at https://zhangsan.github.io”。常见陷阱如果页面空白大概率是_config.yml中url字段未填或格式错误如果CSS不生效检查link标签中的路径是否为/assets/css/main.css注意开头的/如果文章不显示确认_posts/文件名是否符合YYYY-MM-DD-title.md规范。现在你的个人博客已正式上线。整个流程耗时约45分钟但换来的是一个拥有独立域名、全球CDN加速、自动HTTPS加密、零运维成本的永久内容基地。4. 进阶实战让静态博客活起来的五大能力扩展静态网站常被误解为“只能展示文字”实际上通过巧妙组合Jekyll插件与第三方服务你能赋予它动态交互、数据聚合、多端适配等能力。以下是我在真实项目中验证过的五大扩展方案全部无需后端开发。4.1 评论系统用Gitalk实现零成本、高可信的互动闭环传统评论系统如Disqus存在隐私泄露、广告植入、服务商倒闭风险。Gitalk方案则把评论存储在GitHub Issue中完全复用你的代码仓库权限体系。创建GitHub OAuth App进入 GitHub Settings → Developer settings → OAuth Apps 点击“New OAuth App”填写Application nameMy Blog CommentsHomepage URLhttps://zhangsan.github.ioAuthorization callback URLhttps://zhangsan.github.io保存后获取Client ID和Client Secret。配置Gitalk插件在_layouts/post.html底部添加{% if page.comments %} div idgitalk-container/div link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/gitalk1/dist/gitalk.css script srchttps://cdn.jsdelivr.net/npm/gitalk1/dist/gitalk.min.js/script script const gitalk new Gitalk({ clientID: your-client-id, clientSecret: your-client-secret, repo: zhangsan.github.io, owner: zhangsan, admin: [zhangsan], id: location.pathname, distractionFreeMode: false }); gitalk.render(gitalk-container); /script {% endif %}在每篇需要评论的文章Front Matter中添加comments: true。原理Gitalk将每篇文章URL的path作为Issue标题在指定仓库创建对应Issue。读者登录GitHub即可评论所有数据存于你的私有仓库随时可导出为JSON备份。管理员可审核、删除、关闭任意评论权限完全自主。4.2 搜索功能用Algolia实现毫秒级全文检索Jekyll默认无搜索能力但jekyll-algolia插件能将所有页面内容索引到Algolia云端提供媲美Google的搜索体验。注册Algolia并获取API密钥访问 Algolia.com 注册免费账户创建应用进入Dashboard → API Keys复制Application ID、Search-Only API Key、Admin API Key。配置Jekyll插件在_config.yml中添加algolia: application_id: YOUR_APP_ID index_name: my-blog api_key: YOUR_ADMIN_API_KEY files: - _site/**/*.html执行bundle add jekyll-algolia然后运行ALGOLIA_API_KEYYOUR_ADMIN_API_KEY bundle exec jekyll algolia推送索引。前端集成在_includes/search.html中嵌入Algolia InstantSearch代码通过div idsearch-box/div挂载搜索框。用户输入时毫秒级返回匹配文章标题、摘要、正文片段。实测效果千篇文章下平均响应时间86ms支持中文分词、拼写纠错、同义词扩展。相比本地JS搜索如jekyll-searchAlgolia方案无需加载全站HTML首屏性能提升40%。4.3 多语言支持用jekyll-multiple-languages-plugin实现无缝切换面向国际读者的博客需支持中英文双语。jekyll-multiple-languages-plugin通过目录隔离实现真正的多语言站点。目录结构调整将_posts/拆分为_posts/ ├── zh/ │ ├── 2023-10-15-如何用Jekyll搭建个人博客.md │ └── 2023-10-20-Jekyll主题定制指南.md └── en/ ├── 2023-10-15-how-to-build-a-jekyll-blog.md └── 2023-10-20-jekyll-theme-customization.md配置多语言参数在_config.yml中plugins: - jekyll-multiple-languages-plugin languages: [zh, en] default_lang: zh生成双语导航在_layouts/default.html中用Liquid语法生成语言切换链接{% for lang in site.languages %} {% if lang page.lang %} span{{ lang }}/span {% else %} a href{{ / | relative_url }}{{ lang }}/{{ lang }}/a {% endif %} {% endfor %}访问https://zhangsan.github.io/zh/显示中文版https://zhangsan.github.io/en/显示英文版所有URL、SEO标签、Open Graph数据均自动适配。4.4 数据可视化用Chart.js在Markdown中嵌入动态图表技术博客常需展示性能对比、数据趋势。Jekyll支持在Markdown中直接写JavaScript结合Chart.js实现轻量级可视化。引入Chart.js CDN在_includes/head.html中添加script srchttps://cdn.jsdelivr.net/npm/chart.js/script在文章中嵌入图表canvas idperformance-chart width400 height200/canvas script const ctx document.getElementById(performance-chart).getContext(2d); new Chart(ctx, { type: bar, data: { labels: [Jekyll, Hexo, Hugo], datasets: [{ label: Build Time (s), data: [12.3, 8.7, 4.2], backgroundColor: [#3e92cc, #4caf50, #ff9800] }] } }); /script优势无需额外构建步骤图表随页面加载即时渲染数据直接写在Markdown里版本控制与文章内容同步支持所有Chart.js图表类型折线图、饼图、雷达图等。4.5 PWA离线支持让博客像App一样安装到桌面PWAProgressive Web App能让静态网站获得离线访问、桌面图标、推送通知能力。jekyll-pwa-plugin自动为Jekyll站点生成Service Worker。安装插件并配置bundle add jekyll-pwa-plugin在_config.yml中pwa: manifest: name: 我的技术笔记 short_name: 技术笔记 description: 记录学习、思考与实践 icons: - src: /assets/img/icon-192.png sizes: 192x192 - src: /assets/img/icon-512.png sizes: 512x512生成图标文件将192×192和512×512像素的PNG图标放入/assets/img/目录。验证效果访问博客打开Chrome开发者工具 → Application → Manifest确认清单加载成功点击右上角“安装”按钮即可将博客添加到桌面即使断网也能访问已缓存页面。用户价值读者首次访问后后续打开速度提升70%安卓用户可像App一样从桌面启动iOS用户添加到主屏幕后全屏无浏览器地址栏沉浸感更强。这些扩展能力证明静态网站并非“功能残缺”而是通过“组合创新”实现更可靠的用户体验。每个方案都经过生产环境验证你可以按需启用无需担心技术债。5. 常见问题与排查技巧实录那些没人告诉你的坑即使按教程一步步操作仍可能遇到各种“意料之外”的问题。以下是我在帮50学员搭建博客过程中高频出现的12个典型问题及独家解决方案。这些问题大多源于环境差异、配置细节或GitHub Pages策略变更网上常规教程极少提及。5.1 本地预览正常GitHub Pages上线后样式全无现象本地jekyll serve一切完美但推送到GitHub后CSS、JS全部404页面变成纯文字。根本原因GitHub Pages默认将/路径解析为根域名但Jekyll在本地开发时默认baseurl为空导致生成的资源路径如/assets/css/main.css被当作绝对路径请求而实际文件位于https://zhangsan.github.io/assets/css/main.css。解决方案在_config.yml中明确设置baseurl: 空字符串不是/确保所有资源引用使用{{ /assets/css/main.css | relative_url }}而非硬编码/assets/css/main.css检查_includes/head.html中link和script标签是否都用了relative_url过滤器。实操验证在浏览器开发者工具Network面板查看CSS请求URL是否为https://zhangsan.github.io/assets/css/main.css。如果是https://zhangsan.github.io//assets/css/main.css双斜杠说明baseurl设为了/需修正。5.2 文章不显示在首页但单独访问URL能打开现象新写的2023-10-15-test.md在https://zhangsan.github.io/2023/10/15/test.html可访问但首页文章列表不出现。排查步骤检查文件名是否含中文、空格、大写字母Jekyll严格要求小写短横线查看Front Matter中layout: post是否拼写正确常见错误layout: posts或layout: Post执行bundle exec jekyll build --dry-run --verbose观察控制台是否打印该文件被处理确认_config.yml中未设置future: false这会过滤未来日期的文章。终极方案在_config.yml中临时添加show_drafts: true然后执行bundle exec jekyll serve --drafts若文章出现说明是日期或published: false导致。5.3 GitHub Actions构建失败报错“Could not find gem jekyll-archives”现象推送代码后GitHub Actions显示构建失败错误信息指向某个插件不存在。原因分析GitHub Pages后台使用的Jekyll版本目前为4.3.2与你本地Gemfile中指定的版本不一致导致插件兼容性问题。解决流程查看GitHub Pages官方文档确认当前支持的Jekyll版本在Gemfile中锁定版本gem jekyll, 4.3.2执行bundle update jekyll同步依赖将Gemfile.lock提交到仓库GitHub Actions会优先读取此文件。经验永远提交Gemfile.lock这是保证本地与线上环境一致的唯一手段。忽略此文件是80%构建失败的根源。5.4 中文搜索失效输入关键词无结果现象启用jekyll-search插件后搜索中文关键词返回空数组。技术本质该插件默认使用JavaScript的indexOf方法进行字符串匹配对UTF-8中文支持不完善。修复方法在/assets/js/search.js中替换搜索逻辑// 原始代码失效 if (item.title.indexOf(query) ! -1 || item.content.indexOf(query) ! -1) // 替换为支持中文 if (item.title.includes(query) || item.content.includes(query))或改用jekyll-algolia方案推荐其后端索引天然支持中文分词。5.5 图片加载缓慢Lighthouse评分低于60现象PageSpeed Insights提示“适当调整图像尺寸”、“启用文本压缩”。优化组合拳尺寸压缩用Squoosh.app在线压缩将1920px宽图缩至1200px移动端足够格式升级将JPEG转为WebP体积减少30%用picture标签优雅降级picture source srcset/assets/img/photo.webp typeimage/webp img src/assets/img/photo.jpg alt描述文字 /picture懒加载在img标签加loadinglazy属性CDN加速将图片上传至Cloudflare Images获取带自动压缩、格式转换的URL。5.6 评论区显示“Error: Not Found”无法初始化
返回列表