缩短本地 jekyll 服务器的页面生成时间

2024-03-27

跑步时jekyll --server,整个站点被重建。在足够大的站点上,这需要非常长的时间。即使与--auto标志,这应该会阻止整个站点重新生成,但完成时间相当长(对我来说 10 多秒,据报道对某些人来说需要几分钟)。这在编辑和预览单个页面时很不方便。我希望缩短那段时间。

有没有办法确定为什么 Jekyll 需要这么长时间来重建页面?

或者,是否有关于编辑工作流程的建议,允许使用 Jekyll 进行更短的(更)反馈循环?


我无法解决完整站点构建所需的时间,但我想出了一种方法来显着加快起草文档和进行布局更改的速度。所有这些都假设您在本地计算机上进行编辑,然后部署到生产服务器。如果您采用不同的流程,您的里程可能会有所不同。

核心思想是使用多个 jekyll 源目录,每个目录都指向相同的输出位置。就我而言,我使用三个。一份用于起草和编辑帖子(称为“_drafts”),一份用于布局、设计和功能更改(称为“_dev”),最后一份包含整个网站的内容(称为“_main”)。

顶层目录结构如下所示:

./_drafts
./_dev
./_main
./html

每个 jekyll 源的 _config.yml 文件设置如下,将 jekyll 生成的输出指向“html”目录:

destination: ../html

“_drafts”和“_dev”目录包含模仿“_main”站点的设计和功能所需的最小数量的文件。我在这两个目录中完成所有工作,并在正在处理的目录中运行 jekyll。我的本地网络服务器设置为指向本地域(例如http://jekyll-test/)到“html”目录,这样我就可以在进行更改时看到发生了什么。

完成编辑后,我将新更新的文件从“_dev”或“_drafts”复制到“_main”中的相应位置。文件就位后,我会在“_main”中进行最后一次 jekyll 运行。通过这种方法,您只需等待一次漫长的站点生成时间即可将站点部署到生产环境中。我已经使用这种方法有一段时间了,发现它有很大的不同。

还有一些其他方法可以优化工作流程:

  • 使用符号链接有助于保持“_drafts”和“_main”的设计和功能同步。

    如果您使用的是 Mac 或 Linux 计算机,请设置符号链接以指向./_drafts/_config.yml to ./main/_config.yml and ./_drafts/_layouts to ./main/_layouts(Windows 上可能存在类似的功能,但我无法谈论它)。由于某些原因,jekyll 不能很好地处理某些符号链接的目录。例如,在我的安装中,我有一个根级别的“css”目录,该目录不能用作符号链接。我必须在所有地点都有一份它的实际副本。

  • 创建部署脚本。

    当我准备好部署时,我不会直接运行 jekyll。我编写了一个小脚本,在“_main”目录中调用 jekyll,将输出同步到我的生产服务器,然后在完成时通知我。这不仅节省了等待 jekyll 的时间,还减少了部署站点所需的步骤数。

  • 构建额外的脚本和工具。

    从“_dev”和“_drafts”目录复制文件并不是什么大问题,但它是添加一些自动化的主要位置。例如,我有一个命令行脚本,它将“_config.yml”文件以及“_layouts”和“css”目录从“_dev”复制到“_drafts”和“_main”(根据需要)。

    待办事项中的另一个工具是本地网络应用程序,它将帖子从“_drafts”移动到“_main”。任何能让文件移动更容易并减少创建和发布摩擦的东西都是好的。

  • 使用LiveReload

    本地运行,jekyll --auto非常适合在处理文件时自动生成更改。与此自然搭配的是一个名为的应用程序实时重载 http://livereload.com。它会监视您的本地“html”目录,并在内容更改时触发浏览器自动重新加载。这样做的好处是,您可以将浏览器窗口保留在文本编辑器旁边,并在保存文件时看到自动发生的更改。它时不时会有点不稳定,但是用过它之后,你就不会知道没有它你是如何生活的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩短本地 jekyll 服务器的页面生成时间 的相关文章

  • 如何在没有index.html的情况下使用Jekyll-paginate?

    我正在尝试在 Github 页面上构建我的博客 出于显而易见的原因我必须使用 Jekyll paginate 问题是 除了欢迎页面之外 我不将 index html 页面用于任何其他用途 我在名为articles的文件夹中有一个名为inde
  • 如何使用 Jekyll 向 MarkDown 添加多个类?

    我想在 Jekyll 驱动的网站中生成 HTML 表 该表的格式应为table and table stripped像这样的类 table class table table stripped 我该怎么做 类似问题 如何在 Jekyll 中
  • Jekyll 自动目录

    我已经建立了一个基于 Jekyll 代码的网站阿帕奇构建者 http buildr apache org Buildr 网站根据标题中的标题自动为每个页面生成一个目录 textile格式文件 例如 您使用纺织品编写一个页面 标记出标题 如下
  • 和/或 Jekyll 上的 where_exp 表达式

    我正在尝试使用where exp根据两个类别过滤 Jekyll 页面or操作员 assign sortedPages site pages sort date reverse where exp page page categories c
  • 动态变量 Jekyll Liquid

    我想在 jekyll Liquid 安装中使用动态变量 我想使用动态变量动态访问 config yml 文件 名称 最好用一个例子来解释 Page layout default title title homepage 默认布局 site
  • 在 Jekyll 上的 CSS 中使用 Liquid 诱惑来调整每页的 div 背景颜色

    我正在使用 Jekyll 和 Liquidwebsite http annawees github io 我一直坚持在 CSS 中使用 Liquid 来正确编译 我尝试为每个页面的边框使用不同的颜色 并将默认设置为黑色 我很欣赏你们的任何见
  • 如何更改 Jekyll 网站的默认字体

    我是使用 Jekyll css 等的新手 我分叉了现在的杰基尔 https github com barryclark jekyll now回购 有没有办法可以更改或添加整个 jekyll 网站的默认字体 看起来像这个帖子 https st
  • Jekyll 帖子未生成

    我正在尝试向 Jekyll 网站添加新帖子 但运行时无法在生成的页面上看到它jekyll serve 无法生成 Jekyll 帖子的常见原因有哪些 该帖子未放置在 posts 目录 当您更改collections dir在你的配置中 默认
  • 如何在 Jekyll / Github 页面站点的 config.yml 中的新选项卡中打开 URL?

    我是自学成才 对 Jekyll 和 Github Pages 完全陌生 并且想知道如何在 config yml 页面中使用 markdown 在新选项卡中打开 URL This https aweekj github io Kiko plu
  • Jekyll编码类别特殊字符名称

    我的 Jekyll 安装曾经可以工作 自更新以来 我遇到了 URL 包含带有一些特殊字符的标签名称的问题 现在 当我尝试访问包含特殊字符的 URL 时 会收到一条错误消息 例如http 127 0 0 1 4000 tag Actualit
  • 如何确定 jekyll 是在本地运行还是在生产站点运行?

    jekyll 中有一个名为 production url 的配置参数 我找不到任何有关如何使用它的信息 理想情况下 我希望能够在运行时生成带有本地网址的永久链接serve运行时的参数和生产 urlbuild param 我怎么能这么做呢 当
  • 在 Jekyll 中显示文件名并突出显示 Pygments 代码

    当在已知位置突出显示标准文件时 我想将文件名放在代码块中 最好在顶部 一个假设的例子是 highlight apache show filename etc httpd conf httpd conf the file contents e
  • 有没有办法评估带有液体标签的字符串

    我需要提供页面内容参考列表 它应该包含页面上各部分的参考 我能看到的唯一方法是使用page content并解析它 但我偶然发现了数据评估的问题 例如我可以从page content site data sdk language SDK但没
  • 为 Jekyll 服务时参数数量错误(1 对 2)

    全新安装 Jekyll 和 Octopress 启动服务器时 它会产生 Homes MacBook Pro octopress home jekyll serve Configuration file Users home octopres
  • 将 Jekyll 添加到现有网站

    我有一个简单的网站 并尝试在新文件夹中添加 Jekyll 博客blog因此我已经跑了jekyll new blog在文件夹中 path 但是当我运行命令时jekyll build in path我有这些错误 jekyll build Con
  • 传递参数以包含在 Liquid 模板中

    在我的 Jekyll 支持的网站上 我有一个包含函数 可以执行类似功能的操作 但我不知道如何正确传递它的参数 当我使用 include 像这样传递参数 include function liquid foo baz quux 它只是传递文字
  • 如何为具有大图像目录的博客设置 Jekyll,以避免在生成的站点中重复该目录?

    我正在考虑使用 Jekyll 构建一个网站 该网站将成为一个包含大量图像 以及其他大型媒体文件 的博客 创建图像目录 然后根据帖子中的需要链接到它们是很容易的 但是 据我了解 生成站点时 所有图像数据将被复制到保存静态文件的生成的 site
  • 如何将 Liquid 标签突出显示在有序列表中?

    这就是我want页面为 ol li first li li second code code li li third li ol 这就是我正在写的 1 first 2 second highlight ruby code here endh
  • 如何在 Jekyll 中列出同一类别的帖子?

    我想列出与当前帖子具有相同类别的固定数量的最近帖子 这就是我得出的结论 for category name in page categories limit 1 h2 Other articles in category name h2 u
  • Jekyll:不允许操作@apply2files

    我正在使用 Windows 10 的 Linux 子系统 我在其中安装了 Jekyll 但是当我运行时bundle exec jekyll serve它给了我 jekyll 3 8 6 Error Operation not permitt

随机推荐

  • MYSQL CSV 导入 - 无法从发送到 GEOMETRY 字段的数据中获取几何对象

    我的服务器上有 CSV 文件 其中数据如下所示 16777216 17039359 APNIC Debogon Project 17367040 17432575 Tmnet Telekom Malaysia Bhd 17435136 17
  • 通配符导入,然后隐藏特定隐式?

    给定以下具有 2 个隐式的对象 scala gt object Foo implicit def stringToInt x String 555 implicit def stringToBoolean x String true war
  • System.Net.WebException:错误:在单声道 Android 应用程序中调用 WCF 服务抛出异常时 NameResolutionFailure

    我正在开发 Mono Android 移动应用程序 我在应用程序中调用 WCF 服务 我使用项目菜单的 gt Add WebRefernce 选项添加了 WCF 服务 我的问题是当我在设备上运行调用 wcf 服务时遇到异常 例外 为您的应用
  • Android“vspace”内存?

    我想更多地了解 vspace 内存到底是什么 在为 Android 游戏加载库时 经常会出现虚拟空间内存不足的情况 因为我们倾向于在应用程序启动时占用尽可能多的内存 我一直无法找到任何有关它的信息 这是我收到的错误消息 11 11 16 0
  • 使 ruby​​ gems 响应终端命令

    我对红宝石和宝石制作非常陌生 我制作了一个简单的 gem 它根据输入抓取一些信息 但是 要使用我的 gem 我需要进入解释器 irb 并需要我的 gem 然后使用一些参数调用该方法 假设宝石被称为foo 假设该方法被调用print webs
  • 错误 StatusLogger Log4j2 找不到日志记录实现

    我正在尝试实施log4j 2但它不断抛出以下错误 gt ERROR StatusLogger Log4j2 could not find a logging implementation gt Please add log4j core t
  • 浮动操作按钮导致错误和应用程序崩溃

    使用浮动操作按钮时 我的 Android 应用程序崩溃并抛出错误 当我删除它时 我的应用程序成功运行 但如果可以的话 我宁愿使用浮动操作按钮 这是我完整的错误日志 java lang RuntimeException Unable to s
  • Python - 如何检查文件是否被另一个应用程序使用?

    我想打开一个由另一个应用程序定期写入的文件 该应用程序无法修改 因此 我只想在知道该文件未被其他应用程序写入时才打开该文件 有没有Pythonic的方法来做到这一点 否则 我如何在 Unix 和 Windows 中实现这一点 edit 我会
  • 从头开始为 JRE 创建 Docker 映像

    我正在尝试使用 JRE 创建映像而不使用任何操作系统 我尝试了这个 Dockerfile 但不起作用 FROM openjdk 11 0 1 jdk oraclelinux7 as JDK RUN jlink no header files
  • 如何为动态搜索字符串创建索引

    我有一点数据库 仅用于学术目的 我最多有对象表 我在 Power Designer 中创建了一个实体关系模型 ERM 并且该程序默认为每个表的序列 ID 创建索引 我想知道如何使用索引 就像在查询中那样 说我会 想要通过 id 查找产品 但
  • 64 位环境中引用的大小

    在浏览 SO 上另一个问题的答复时遇到了这个 引用与变量获取 https stackoverflow com questions 3744635 c is it a good idea to always return references
  • iOS 10 中的 AVSpeechSynthesizer 错误

    我目前正在使用创建一个文本转语音应用程序AVSpeechSynthesizer 在 iOS 9 中运行正常 但在 iOS 10 中出现以下错误 无法获取属性 LocalURL 错误域 MobileAssetError Code 1 无法复制
  • Escape(\) 字符背后的魔力是什么

    C C 编译器如何操作源代码中的转义字符 编译器语法是如何编写来处理该字符的 编译器遇到该字符后会做什么 大多数编译器分为几个部分 编译器前端称为词法分析器 http en wikipedia org wiki Lexical analyz
  • 在 jdk 11 中运行 Doclet 的 com.sun.tools.javadoc.Main.execute 的替代方案是什么?

    我在 Apache netbeans 10 上使用 JDK 11 The main该方法自 java 9 起已被弃用 并标记为删除 如果没有 选择 https docs oracle com en java javase 11 docs a
  • 如何对 SQL 存储过程的 col 结果求和[重复]

    这个问题在这里已经有答案了 我有一个存储过程 其结果如下 Governors AUTO 07313570121 1 3 69 2 01 2 01 1 68 83 58 Governors AUTO 07319354850 1 2 79 1
  • 如何根据风格更改 Flutter 应用程序名称?

    我有 Flutter 应用程序的开发和生产风格 问题是开发和生产应用程序的标签和启动器是相同的 因此看不到差异 实际上不能同时在设备上安装两者 根据风格更改 Flutter 应用程序名称的简单方法是什么 我知道可以通过修改 AndroidM
  • 需要使用油脂猴脚本点击出价按钮

    我有点卡住了 我正在尝试创建一个油脂猴脚本 该脚本将自动单击拍卖网站上出现的弹出窗口 我有 Xpat 但我对 GM 的经验太丰富 无法让它发挥作用 这是我从 fire finder for firebug 获得的元素检查线
  • Sublime Text 中的边界敏感 Cmd+D

    我在 OSX 上使用 Sublime Text 3 Using cmd D I want to select the next instance of es but not if it s part of another word 鉴于此代
  • 如何从 Google App Engine for Java 调用 Google App 脚本

    我有一个谷歌应用程序脚本 我想从 Google App Engine for Java 调用它 有人可以指导如何调用这样的脚本吗 我试着用谷歌搜索这个 但只找到了很多关于如何进行相反操作的信息 请指教 6个月前我也有同样的问题 我可以使用脚
  • 缩短本地 jekyll 服务器的页面生成时间

    跑步时jekyll server 整个站点被重建 在足够大的站点上 这需要非常长的时间 即使与 auto标志 这应该会阻止整个站点重新生成 但完成时间相当长 对我来说 10 多秒 据报道对某些人来说需要几分钟 这在编辑和预览单个页面时很不方