【问题标题】:Jekyll - Couldn't find file '' in `index.html`Jekyll - 在`index.html`中找不到文件''
【发布时间】:2018-06-26 11:29:44
【问题描述】:

我为要显示在主页上的视频添加了元数据,如下所示:

index.html:

---
layout: default
title: lorem ipsum
description: |
  loren ipsum dolor sit amet, consectetur adipiscing elit. 
  Pellentesque rutrum lacus sed quam pulvinar cursus. Fusce dictum dolor.
animVideo:
  mp4: /videos/Satoshi-intro.mp4
  webm: /videos/Satoshi-intro.webm
  ogv: /videos/Satoshi-intro.ogv
  poster: /videos/Satoshi-intro.png
(...more data)
---
{% include hero-slider.html %}
<div class="section text-center bg-gray"  id="content" >
  <div class="container">
    ...
{% include why-use-s.html %}

当我运行“bundle exec jekyll serve”时,出现错误:

Liquid Exception: couldn't find file '' in `index.html' Checked in these paths: /var/etcetcetc ...
jekyll 3.8.1 | Error:  couldn't find file '' in `index.html'

我可以确认错误是由于上面添加的元数据animVideo。没有它,该网站运行良好。但是,添加视频文件后,出现上述错误。视频文件的文件夹路径似乎是正确的,它位于根文件夹/videos/[files]。元数据的格式似乎也不错。

我没有想法,如何进一步进行,如何调试和找到问题的原因,因此转向 Stackoverflow。

谢谢

编辑: 根据要求,这是视频嵌入代码(我认为这不是问题。

为什么使用-s.html:

  <div class="container">
    {% if page.animVideo %}
    <div class="row">
      <div class="col-sm-12 text-center">
        <video id="introVideo" controls preload="auto" poster="{{ page.animVideo.poster }}">
          <source src="{{ page.animVideo.mp4 }}" type="video/mp4"/>
          <source src="{{ page.animVideo.webm }}" type='video/webm; codecs="vp8, vorbis"'/>
          <source src="{{ page.animVideo.ogv }}" type='video/ogg  codecs="theora, vorbis"' />
          <!-- Fallback object using Flow Player -->
          <object type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"
                  width="640" height="360">
            <param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"/>
            <param name="allowFullScreen" value="true"/>
            <param name="wmode" value="transparent"/>
            <param name="flashVars"
                   value="config={'playlist':[ '{% pic '{{ page.image }}' %}',{'url':'{{ page.animVideo.mp4 }}','autoPlay':true}]}"/>
            <img alt="My Movie" src="{{ page.animVideo.poster }}" width="640" height="360"
                 title="No video playback capabilities."/>
          </object>
          <!-- Fallback Text -->
          Your browser does not appear to support a video.
        </video>
      </div>
    </div>
 ...

这里是文件夹结构,index.html 位于 pages 文件夹中,videos 位于根文件夹中:

【问题讨论】:

  • 没有足够的代码来重现此错误。您可以发布嵌入特定代码的视频吗?请注意,您的错误消息并非来自 Jekyll 或 Liquid。你用插件吗?
  • 我正在编写从别人那里继承的代码,所以我不太熟悉 Jekyll。插件视频嵌入代码很简单,我把代码贴在上面。根据我的演绎调试,我认为错误是由于文件引起的。
  • 比特币交易的所有秘密是怎么回事?所以你正在建立新的 www.satoshishouse.com 网站......谁在乎!?如果您不想与比特币相关联,则不应在公共论坛上寻求帮助。有道理,对吧?关于您的问题:关于 SO 的规则是您向我们提供您的存储库 URL 或 a Minimal, Complete, and Verifiable example。大卫太/非常善良了。

标签: jekyll liquid


【解决方案1】:

没有代码可以调试,我只能猜你这个自定义标签有问题:

{% pic '{{ page.image }}' %}

如果page.image 为空,则pic 标签正在寻找不存在的''

【讨论】:

  • 感谢您回来,即使我禁用{% include why-use-s.html %},错误(在上面的问题中提到)仍然出现,据我所知,这是使用animVideo文件的唯一代码,它我觉得很奇怪。
  • 似乎只是将视频文件“animVideo”导入index.html 的标题会产生错误,即使消耗视频的{% why-use-s.html %} 被注释掉也是如此。
  • 你有仓库地址吗?
  • 感谢大卫在这个问题上投入了这么多时间和精力。该回购是我工作场所的私有财产,因此我无法分享。有一点很清楚,animVideo 是原因。
  • 最后是 index.html 文件头(元数据)中的 yml 格式问题。我刚刚删除了animVideo,它开始工作了。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
  • 2019-12-13
  • 2017-05-01
相关资源
最近更新 更多