首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jekyll错误“液体异常:未定义的方法‘编码’为nil:NilClass in _layout/post.html”

Jekyll错误“液体异常:未定义的方法‘编码’为nil:NilClass in _layout/post.html”
EN

Stack Overflow用户
提问于 2015-07-22 18:26:25
回答 2查看 2.2K关注 0票数 3

在尝试运行jekyll buildjekyll serve时获取以下错误

代码语言:javascript
复制
Liquid Exception: undefined method 'encoding' for nil:NilClass in _layouts/post.html
jekyll 2.5.3 | Error: undefined method 'encoding' for nil:NilClass

它看起来是RVM/ruby文件的问题吗?(请参阅下面的--跟踪日志),但我并没有真正按代码操作(尤其是在任何ruby文件中),也没有在最后几次提交中编辑‘/_layout/post.html’,这只是弹出的。

虽然主分支在此错误发生之前已经进行了最后一次提交,但以下是Github:https://github.com/ryanstraits/ryanstraits.github.io上的存储库。

不是一个严肃的编码器,所以我有点困惑。任何帮助都会很好。

下面是我运行jekyll build --trace时得到的信息

代码语言:javascript
复制
Liquid Exception: undefined method encoding' for nil:NilClass in _layouts/post.html /Users/Straits/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/cgi/util.rb:8:inescape': undefined method encoding' for nil:NilClass (NoMethodError) from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/filters.rb:134:incgi_escape'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/strainer.rb:43:in invoke' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/context.rb:82:ininvoke'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/variable.rb:50:in block in render' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/variable.rb:38:ineach'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/variable.rb:38:in inject' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/variable.rb:38:inrender'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:109:in block in render_all' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:96:ineach'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:96:in render_all' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/if.rb:40:inblock (2 levels) in render'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/if.rb:38:in each' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/if.rb:38:inblock in render'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/context.rb:112:in stack' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/if.rb:37:inrender'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:109:in block in render_all' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:96:ineach'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:96:in render_all' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/for.rb:117:inblock (2 levels) in render'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/for.rb:105:in each' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/for.rb:105:ineach_with_index'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/for.rb:105:in block in render' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/context.rb:112:instack'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/tags/for.rb:104:in render' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:109:inblock in render_all'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:96:in each' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:96:inrender_all'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/block.rb:82:in render' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/template.rb:128:inrender'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/liquid-2.6.2/lib/liquid/template.rb:138:in render!' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:106:inrender_liquid'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:205:in render_all_layouts' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:239:indo_layout'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/post.rb:261:in render' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:298:inblock in render'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:297:in each' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:297:inrender'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:51:in process' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/command.rb:28:inprocess_site'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:56:in build' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:34:inprocess'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:18:in block (2 levels) in init_with_program' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:incall'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in block in execute' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:ineach'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in execute' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/mercenary-0.3.5/lib/mercenary/program.rb:42:ingo'
from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/mercenary-0.3.5/lib/mercenary.rb:19:in program' from /Users/Straits/.rvm/gems/ruby-2.2.0/gems/jekyll-2.5.3/bin/jekyll:20:in'
from /Users/Straits/.rvm/gems/ruby-2.2.0/bin/jekyll:23:in load' from /Users/Straits/.rvm/gems/ruby-2.2.0/bin/jekyll:23:in

'
from /Users/Straits/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in eval' from /Users/Straits/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in'
EN

回答 2

Stack Overflow用户

发布于 2016-03-18 10:37:46

对我来说问题是:

代码语言:javascript
复制
{{ cgi_escape_title = page.title | cgi_escape }}

在我的_layouts/default.html中,对于没有page.title的页面。

一个解决方案是这样做:

代码语言:javascript
复制
{{ page.title | default: "" | cgi_escape }}

它将nul标题转换为"",或者如果您感到更详细:

代码语言:javascript
复制
{% if page.title %}
  {% assign cgi_escape_title = page.title | cgi_escape %}
{% else %}
  {% assign cgi_escape_title = '' %}
{% endif %}
{{ cgi_escape_title }}

在Jekyll 3.0.3上测试。

票数 4
EN

Stack Overflow用户

发布于 2015-07-23 11:23:52

发现了这个问题:我的很多帖子都是使用"Wordpress to Jekyll“转换器导入的,看起来它在前面的几个帖子中留下了"title:”字段中的空白。只是希望这个错误能更具体一点。

我想今天的教训是:伙计们,不要让你的前额空白!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31571150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档