管理 Github Pages 中文件夹内的 Jekyll 页面

4

我有一个托管在GitHub Pages上的Jekyll网站。现在我有很多页面,我想将它们管理到名为_pages的文件夹中。我理想情况下希望拥有以下结构:

root
  |-> _pages
      |-> Index.md
      |-> contact.md
      |-> cv
          |-> cv.md
          |-> my_cv.pdf
  |-> _posts
  |-> [other things such as config and gemfile]

我已经在_config.yml中定义默认的永久链接,具体做法是添加如下信息:
include:
  - _pages

defaults:
  - scope:
      path: "_pages"
      type: "pages"
    values:
      permalink: /:basename/ # make URL of pages in the folder _pages as on the root.

这很完美。

然而,你可以看到在 _pages 文件夹里,我想要再建立一个名为 cv 的子文件夹,并将我的 cv.mdmy_cv.pdf 放入同一个文件夹中(实际网站上有更多这些文件和页面)。最终我想要使用相对路径链接 [下载我的CV](my_cv.pdf) ,因为pdf和.md文件在同一个文件夹中,它应该能够识别。但事实并非如此。 cv.md 的永久链接是/cv/而不是cv文件夹。因此,当我使用 [下载我的CV](my_cv.pdf) 时,它会创建 root/cv/my_cv.pdf 文件夹,但实际上该pdf文件并不存在!

我该如何解决这个问题?你有什么技巧吗?

2个回答

1

感谢您的回答。解决方案一不可行,因为cv.md本身的实际路径在_pages/cv/中,而my_cv.pdf也在其中。因此,全局永久链接会更改md文件的永久链接,而不是静态文件的永久链接。 - Alireza M. Kamelabad
谢谢,你是正确的。我已经更新了答案。 - Mr. Hugo
实际上,即使您将它们放在下划线命名的文件夹中,它们也会出现并可用。诀窍是在配置中包含路径。 - Alireza M. Kamelabad

-1

除非您计划将此功能推出到数十个子目录或数十个站点,否则我建议您只需将完整路径添加到链接中。例如:[下载我的简历]({{ '/path/my_cv.pdf' | relative_url }})[下载我的简历]({{ '/path/my_cv.pdf' | absolute_url }})

如果不行的话,您可以在cv.md的frontmatter中添加permalink: /path/where/pdf/lives/。这样它们就都在同一个目录中了。当然,这意味着您的cv.md将无法在example.com/cv/上构建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接