【问题标题】:Jekyll build fails with "Liquid Exception: private method `gsub' called for nil:NilClass" when using cgi_escape filter使用 cgi_escape 过滤器时,Jekyll 构建失败并出现“Liquid Exception: private method `gsub' called for nil:NilClass”
【发布时间】:2013-08-30 01:50:23
【问题描述】:

我正在使用 {{site.url | cgi_escape}} 在 Jekyll 1.1.2 项目中的 index.html 文件中。每当运行服务器时,构建都会失败,因为 液体异常:为 nil:NilClass 调用私有方法 `gsub'

在我的另一台计算机上,我有 Jekyll 0.12.0,并且同一个项目确实构建成功。

有什么办法可以解决这个问题?

【问题讨论】:

  • stackoverflow.com/questions/3031229/… 有帮助吗?你的 site.url 设置了吗?
  • 是的,site.url 在 _config 中设置并且 {{site.url}} 按预期正确呈现。仅当应用 cgi_escape 过滤器时才会出现此问题。由于问题仅在 Jekyll 1.1.2 上而不是在 0.12.0 上,我想这与安装的 jekyllversion 或 Liquid 版本有关?

标签: ruby jekyll liquid


【解决方案1】:

我在尝试将 uri_escape 过滤器应用于 postlayp 中的页面变量时解决了相同的错误消息

{{page.description | uri_escape}}

事实证明,并非我所有的帖子都在 yaml 前端设置了描述变量。将描述变量添加到所有帖子并重新运行jekyll build 对问题进行了排序。

【讨论】:

  • 我有一个非常相似的问题,原因是我的一篇帖子没有摘录 - 它抱怨search.json,但其他错误是一样的。这是 Jekyll 3.1.2 的版本。
猜你喜欢
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
相关资源
最近更新 更多