在尝试运行jekyll build或jekyll serve时获取以下错误
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时得到的信息
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'发布于 2016-03-18 10:37:46
对我来说问题是:
{{ cgi_escape_title = page.title | cgi_escape }}在我的_layouts/default.html中,对于没有page.title的页面。
一个解决方案是这样做:
{{ page.title | default: "" | cgi_escape }}它将nul标题转换为"",或者如果您感到更详细:
{% if page.title %}
{% assign cgi_escape_title = page.title | cgi_escape %}
{% else %}
{% assign cgi_escape_title = '' %}
{% endif %}
{{ cgi_escape_title }}在Jekyll 3.0.3上测试。
发布于 2015-07-23 11:23:52
发现了这个问题:我的很多帖子都是使用"Wordpress to Jekyll“转换器导入的,看起来它在前面的几个帖子中留下了"title:”字段中的空白。只是希望这个错误能更具体一点。
我想今天的教训是:伙计们,不要让你的前额空白!
https://stackoverflow.com/questions/31571150
复制相似问题