GitHub Pages帖子链接无法正常工作

3
我正在尝试让一个Git Hub页面的博客工作(https://vcedgar.github.io/CREU-Poly-17/), 但当我转到我的博客文章应该在的链接时,它显示404页面未找到或404文件未找到。非常奇怪的是,我有一个展示文章列表的页面,文章也正常显示(发布日期、标题和简介),但是当我从那个页面点击链接时它就无法工作了。有时我确实让它工作过,但是一段时间后,如果我刷新页面,它就会返回404错误。
以下是代码:

_config.yml

name: CREU 2017 Vatricia Edgar
markdown: kramdown
permalink: /CREU-Poly-17/:title
future: true

默认布局

<!DOCTYPE html>
<html>
    <head>
        <title>{{ page.title }}</title>
        <!-- link to main stylesheet -->
        <link rel="stylesheet" type="text/css" href="/CREU-Poly-17/css/main.css">
    </head>
    <body>
        <h1 class = "head">CREU-17</h1>
        <nav>
            <ul>
                <li><a href="/CREU-Poly-17/">Home</a></li>
                <li><a href="/CREU-Poly-17/About/">About</a></li>
                <li><a href="/CREU-Poly-17/Blog/">Blog</a></li>
            </ul>
        </nav>
        <h2 class = "head">{{page.title}}</h2>
            <div class="container")
              {{ content }}
            </div><!-- /.container -->
        <footer>
            <ul>
                <p><a href="mailto:vcedgar@asu.edu">email</a></p>
                <p><a href="https://github.com/vcedgar">github</a></p>
            </ul>
        </footer>
    </body>
</html>

这篇文章:

---
layout: default
title: Week1
date: 2017-09-01
published: true
---
fist post.

此外,以下是文件/文件夹的组织方式,如果相关的话: About 和 Blog 只包含 About 页面和 Blog 页面的 index.html,_layout 包含默认布局和我想用于文章的布局(改为默认布局以查看是否有帮助,但没有),css 明显包含 css 文件(目前只有一个),_posts 包含文章文件。 我的 GitHub 库 自从我开始制作博客后,我的链接就一直有问题,但这个问题让我束手无策。感谢任何帮助!
3个回答

1
_config.yml中:
url: https://vcedgar.github.io
baseurl: /CREU-Poly-17 #NO TRAILING SLASH

在你的链接中: <a href="{{ site.baseurl }}/CREU-Poly-17/">主页</a>

0

我不确定这是否是一个实际问题,但在 Jekyll 的文档中建议文章文件命名为小写,所以这可能是页面无法正确生成的原因。

如果这也没有帮助,我会在路径中去掉大小写敏感性,并且不会同时使用相同的文件夹用于站点和页面。所以在最坏的情况下,删除_config.yml中的永久链接设置,以便使用默认的文章链接结构。

您还可以参考我的Jekyll驱动的GitHub页面

编辑:显然,OP的GitHub页面正在子目录中运行。这就是为什么即使使用默认永久链接,为了让它运行,他也必须在链接前面放置子目录,如<a href="/CREU-Poly-17{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a>。一个更美好的解决方案是将子目录放在_config.yml中作为baseurl,如David Jacquel的答案所述。


1
将配置文件中的永久链接设置去掉有助于解决此问题。这将把我发送到 https://vcedgar.github.io/2017/09/01/week1.html,但是该页面会显示 404 错误。如果我输入 https://vcedgar.github.io/CREU-Poly-17/2017/09/01/week1.html,则可以正常访问。因此,在 Blog 页面中添加 "/CREU-Poly-17" 到链接 <a href="/CREU-Poly-17{{ post.url }}" title="{{ post.title }}">{{ post.title </a>}}。 - 123theone

0

在通过 Github Pages 部署时,您必须采用相对 URL。

Github 中,在创建站点时,存储库名称包含在页面 URL 中,因此所有绝对链接似乎都会失效。您可以通过添加以下几行 Liquid 代码来解决这个问题:

{{ post.url | relative_url }}

如果您想在URL中添加反斜杠,请使用以下方法

<link href="{{'your url including /home/eas/boot/sd.css' | relative_url}}" rel="stylesheet">

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