Github 上的 Jekyll Collection,我错过了什么吗

问题描述 投票:0回答:2

我在 Github Pages 上使用 jekyll 来托管个人博客。有些帖子有一系列图片,我想使用收藏作为一个简单的照片库。我创建了一个集合目录并在配置文件中设置了集合。我还告诉 jekyll 输出集合文件。

我的目标是部分处理带有图像的帖子;我成功地迭代了图库中的每个项目并输出缩略图。当您单击缩略图时不起作用。我想要发生的是让您转到渲染的集合页面,可以在其中查看全尺寸图像,也许还可以查看该图像的一些其他上下文。

当我单击渲染的集合页面时,我收到 404,因此我觉得我缺少配置中的某些内容,或者可能缺少集合本身的某些内容。我读到的内容表明这应该“有效”。一些网站提到创建自定义布局,您可以看到我创建了一个布局文件夹并将最小主题页面布局的内容复制到其中。

如有任何帮助,我们将不胜感激;请注意,我相信 Github Pages 在 jekyll 3.9.0 上是硬设置的。

这是链接

jekyll github-pages
2个回答
0
投票

好的,所以我从我在 talk.jekyllrb.com 上创建的线程中找到了我正在使用的解决方案。所以基本上,有人指出生成的集合链接中缺少baseurl。我尝试通过设置永久链接来强制它,但这不起作用。终于找到了relative_url过滤器。通过该过滤器传递我的 URL 解决了路径问题。 Github Pages 基本上使用一个子目录(存储库名称),因此您需要在配置中添加 baseurl,然后relative_url 将修复您的链接,以便它们与路径一起使用。

相对网址

将 baseurl 配置值添加到输入中,以将 URL 路径转换为 相对网址。建议将其用于托管在 域的子路径。

我不清楚网站从 WordPress 迁移过来后是否需要更改此设置,但目前它可以正常工作。

希望这对其他人有帮助。


0
投票

有同样的问题。您在网上看到的示例似乎“按原样”工作的原因是它们的命名约定没有解决更广泛用例的陷阱。

我摆弄了整整一个小时,才终于有机会交叉检查 URL。

当您调用

page.url
时,它会为您提供原始文件在目录结构中的位置。但是,浏览器使用 kebab 大小写。因此,如果您的文件位于
staff_member/jane.md
中,它将使用
staff-member/jane.html
代替。注意破折号而不是下划线。

其次,正如您刚才提到的,page url 命令不提供相对 URL。例如,如果您在 github 页面上。正确的网址应该是

https://.github.io//.html
。但是,page url 命令只是将文件名标记到您的 baseurl。这就是你得到 404 的原因。

为了解决这个问题,我发现在配置 yaml 文件中设置默认值更有用。像这样:

收藏:
 工作人员:
  输出:真
  永久链接:“/工作人员/:姓名”

默认值:
 -
  范围:
   路径:“staff_members/”
  价值观:
   布局:“员工”

上述配置为员工集合中的每个文档设置永久链接,并对员工集合文件夹中的所有文档使用“员工”布局。请注意目录结构的下划线和永久链接的破折号。

缺乏 Jekyll 在线配置信息根本没有帮助,希望这篇文章也能帮助别人。

© www.soinside.com 2019 - 2024. All rights reserved.