缩短本地jekyll服务器的页面生成时间
运行缩短本地jekyll服务器的页面生成时间,jekyll,Jekyll,运行jekyll--server时,将重建整个站点。在一个足够大的站点上,这需要非常长的时间。即使使用了--auto标志(该标志应该会阻止整个站点的重新生成),完成的时间也相当长(对我来说是10秒以上,据报道有些是几分钟)。这在编辑和预览单个页面时很不方便。我想缩短时间 有没有办法确定Jekyll重建页面所需的时间为何如此之长 或者,是否有关于编辑工作流程的建议,允许与Jekyll进行简短的(er)反馈循环?这是一个经常出现的主题。不幸的是,这不是目标之一。例如: 只要搜索“compil
jekyll--server
时,将重建整个站点。在一个足够大的站点上,这需要非常长的时间。即使使用了--auto
标志(该标志应该会阻止整个站点的重新生成),完成的时间也相当长(对我来说是10秒以上,据报道有些是几分钟)。这在编辑和预览单个页面时很不方便。我想缩短时间
有没有办法确定Jekyll重建页面所需的时间为何如此之长
或者,是否有关于编辑工作流程的建议,允许与Jekyll进行简短的(er)反馈循环?这是一个经常出现的主题。不幸的是,这不是目标之一。例如:
注:请将您的问题发布在问题跟踪程序上——随着越来越多的人抱怨,问题得到解决的可能性更大。我无法解决完整站点构建所需的时间,但我想出了一种方法,可以大大加快文档起草和布局更改的速度。所有这些都假设您在本地计算机上进行编辑,然后部署到生产服务器。如果采用不同的流程,您的里程数可能会有所不同 其核心思想是使用多个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
(Windows上可能存在类似的功能,但我无法与之对话)。由于某些原因,jekyll无法很好地处理某些象征性链接的目录。例如,在我的安装中,我有一个根级别的“css”目录,它不能作为sym链接使用。我必须在所有地方都有一份真实的副本/main/\u layouts
- 创建一个部署脚本 当我准备部署时,我不会直接运行jekyll。我已经编写了一个小脚本,在“\u main”目录中调用jekyll,将输出rsyncs到我的生产服务器,然后在完成时通知我。这不仅节省了等待jekyll的时间,还减少了部署站点所需的步骤
- 构建其他脚本和工具 从“\u dev”和“\u drafts”目录复制文件不是什么大不了的事,但它是添加一些自动化的主要场所。例如,我有一个命令行脚本,它将“_config.yml”文件以及“_layouts”和“css”目录从“_dev”复制到“_drafts”和“_main”(根据需要) 摘要上的另一个工具是一个本地web应用程序,它可以将文章从“\u草稿”移动到“\u主”。任何使文件移动更容易并减少创建和发布摩擦的方法都是好的
- 使用LiveReload
在本地运行,
非常适合在处理文件时自动生成更改。与之相伴的是一款名为。它监视您的本地“html”目录,并在内容更改时触发浏览器的自动重新加载。这样做的好处是,您可以将浏览器窗口放在文本编辑器旁边,并在保存文件时看到自动发生的更改。它有时有点不稳定,但使用后,你将不知道没有它你将如何生活jekyll--auto
--server
已经运行时,--auto
标志才起作用。i、 e.如果您的Web服务器正在运行jekyll--server--auto
al