Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩短本地jekyll服务器的页面生成时间_Jekyll - Fatal编程技术网

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

缩短本地jekyll服务器的页面生成时间,jekyll,Jekyll,运行jekyll--server时,将重建整个站点。在一个足够大的站点上,这需要非常长的时间。即使使用了--auto标志(该标志应该会阻止整个站点的重新生成),完成的时间也相当长(对我来说是10秒以上,据报道有些是几分钟)。这在编辑和预览单个页面时很不方便。我想缩短时间 有没有办法确定Jekyll重建页面所需的时间为何如此之长 或者,是否有关于编辑工作流程的建议,允许与Jekyll进行简短的(er)反馈循环?这是一个经常出现的主题。不幸的是,这不是目标之一。例如: 只要搜索“compil

运行
jekyll--server
时,将重建整个站点。在一个足够大的站点上,这需要非常长的时间。即使使用了
--auto
标志(该标志应该会阻止整个站点的重新生成),完成的时间也相当长(对我来说是10秒以上,据报道有些是几分钟)。这在编辑和预览单个页面时很不方便。我想缩短时间

有没有办法确定Jekyll重建页面所需的时间为何如此之长


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

这是一个经常出现的主题。不幸的是,这不是目标之一。例如:

只要搜索“compile”和“time”两个词,你就能找到更多。这比看起来要难一点,因为有可能会断开链接

此外,如果您使用的是LSI,请使用最新版本,因为有一个与之相关的修复程序可以使其更快

我给你的唯一建议是看看你是否真的需要所有这些帖子(我知道,我知道),因为这可能是你现在从问题追踪者那里得到的唯一答案——这是我们都想解决的问题,但没有人想开始


注:请将您的问题发布在问题跟踪程序上——随着越来越多的人抱怨,问题得到解决的可能性更大。

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

其核心思想是使用多个jekyll源目录,每个源目录指向同一输出位置。在我的例子中,我使用三个。一个用于起草和编辑文章(称为“_草稿”),一个用于布局、设计和功能更改(称为“_开发”),最后一个包含完整站点内容(称为“_主”)

顶级目录结构如下所示:

./_drafts
./_dev
./_main
./html
为每个jekyll源设置_config.yml文件,并使用以下命令将jekyll生成的输出指向“html”目录:

destination: ../html
“\u drafts”和“\u dev”目录包含使其模仿“\u main”站点的设计和功能所需的最少数量的文件。我所有的工作都在这两个目录中进行,jekyll运行在任何一个目录中。我的本地web服务器设置为指向本地域(例如
http://jekyll-test/
)转到“html”目录,以便在进行更改时查看发生的情况

编辑完成后,我将最新更新的文件从“\u dev”或“\u drafts”复制到“\u main”中相应的位置。一旦文件就位,我会在“u main”中运行最后一个jekyll。使用这种方法,在将站点部署到生产环境之前,只需等待一次漫长的站点生成时间。我已经使用这种方法一段时间了,发现它有很大的不同

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

  • 使用符号链接帮助保持“\u草稿”和“\u主”的设计和功能同步

    如果您在Mac或linux计算机上,请设置符号链接,指向
    /\u drafts/\u config.yml
    /main/\u config.yml
    /\u drafts/\u layouts
    /main/\u layouts
    (Windows上可能存在类似的功能,但我无法与之对话)。由于某些原因,jekyll无法很好地处理某些象征性链接的目录。例如,在我的安装中,我有一个根级别的“css”目录,它不能作为sym链接使用。我必须在所有地方都有一份真实的副本

  • 创建一个部署脚本

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

  • 构建其他脚本和工具

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

    摘要上的另一个工具是一个本地web应用程序,它可以将文章从“\u草稿”移动到“\u主”。任何使文件移动更容易并减少创建和发布摩擦的方法都是好的

  • 使用LiveReload

    在本地运行,
    jekyll--auto
    非常适合在处理文件时自动生成更改。与之相伴的是一款名为。它监视您的本地“html”目录,并在内容更改时触发浏览器的自动重新加载。这样做的好处是,您可以将浏览器窗口放在文本编辑器旁边,并在保存文件时看到自动发生的更改。它有时有点不稳定,但使用后,你将不知道没有它你将如何生活


这太好了。我建议Jykyl人在下一个“我们应该限制编译时间”的讨论时考虑这个想法。您能否澄清一下,您是否需要更短的构建时间来在本地预览您最近的更改(因此,本地主机的“预览构建”:不需要包括所有帖子)?或者,如果您真的需要快速构建包含1000篇文章的部署版本,那么也不是说只有在更改过程中jekyll
--server
已经运行时,
--auto
标志才起作用。i、 e.如果您的Web服务器正在运行
jekyll--server--auto
al