Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 在Jekyll+;GitHub页面站点原因404_Url_Yaml_Jekyll_Config_Github Pages - Fatal编程技术网

Url 在Jekyll+;GitHub页面站点原因404

Url 在Jekyll+;GitHub页面站点原因404,url,yaml,jekyll,config,github-pages,Url,Yaml,Jekyll,Config,Github Pages,我希望在我的网站上解析以下所有URL,该网站使用Jekyll构建并托管在GitHub页面上: 在本地,它们都可以正常工作,但是现在在live站点上,第一个和第三个选项解析,但是中间一个带有尾随斜杠的选项会导致404错误 我现在不使用permalinks。当我在页面的前面添加permalink:/about/时,后面的斜杠问题得到解决,但是about.html会执行404。我想这比当前的行为要好,但我更希望这三个选项都能单独工作,或者重定向到一个能工作的选项 如果相关,我会在布局模板的中

我希望在我的网站上解析以下所有URL,该网站使用Jekyll构建并托管在GitHub页面上:

在本地,它们都可以正常工作,但是现在在live站点上,第一个和第三个选项解析,但是中间一个带有尾随斜杠的选项会导致404错误

我现在不使用permalinks。当我在页面的前面添加
permalink:/about/
时,后面的斜杠问题得到解决,但是
about.html
会执行404。我想这比当前的行为要好,但我更希望这三个选项都能单独工作,或者重定向到一个能工作的选项

如果相关,我会在布局模板的
中设置一个规范引用,如下所示:

这是我的网站的文件树:


因此,如果您在本地构建站点时查看生成的
\u站点
文件夹,您将看到应该有以下内容:

_site
  |--about
  |   |--index.html
  |   |
...
在末尾使用permalink
/about/
/
意味着Jekyll将创建
about
文件夹,然后在里面创建
index.html
页面。由于历史优先级,它被称为
index.html
。浏览器默认在没有要检索的特定文件时查找此页面

考虑到这一点,以下是这三个选项中每一个选项的情况:

  • /about
    :浏览器足够智能,可以插入尾随的
    /
    ,因此可以查看
    /about/
    文件夹内部。您没有指定要查找的特定文件,因此它默认为查找
    index.html
    。它查找并呈现
    index.html
  • /about/
    :同上。它在
    /about/
    文件夹中查找。因为没有指定特定的文件,所以它会查找
    index.html
    。它查找并呈现
    index.html
  • /about.html
    :浏览器正在查找根文件夹中名为
    about.html
    的文件
    /about/index.html
    在那里,但这不是浏览器要找的
    about.html
    不存在,这就是它抛出404的原因

  • 所以,没有bug。这正是当您在url中为浏览器指定尾随
    /
    时浏览器的行为。

    根据GitHub的支持,这是GitHub页面中的预期行为:

    你好,迈克尔

    感谢您联系GitHub支持部门,提出有关GitHub的问题 页数

    目前没有办法改变我们的尾部斜杠行为 这一次,虽然我知道这样的情况可能会发生 相当令人沮丧

    我将与团队分享您的用例,以供将来考虑 改进。我不能说是否或何时会发生变化,但你的 反馈意见掌握在正确的人手中

    谢谢

    Steve@slgraff GitHub支持


    已解决:遇到相同的问题,并通过更新_config.yml中的permalink设置来修复

    在此处添加尾部斜杠。缺少尾部斜杠的URL将重定向到/:name/


    这是很好的信息,谢谢。澄清一下,目前我根本没有使用任何永久链接。我的问题不是关于永久链接的正确使用或期望,而是如何让URL可以工作的所有场景(无尾随斜杠、是尾随斜杠和.html扩展名)或重定向到可以工作的场景。可能涉及permalinks,也可能不涉及;对我来说不是特别重要。这似乎是一件很普通的事情,但现在还没有发生。因为使用
    /about/
    permalink可以让前两个场景正常工作。将文件
    /about.html
    添加到项目中并将其重定向到
    /about/
    ,从技术上讲,这三种方案都可以工作。因此,您需要
    /about/index.html
    /about.html
    ,第二个重定向到第一个。你会有“空文件”只做重定向,但它确实解决了你的问题。是的,我考虑过了。我只是觉得GitHub页面上发生了一些其他的事情,因为我觉得这是一个最近的问题,这样的解决方法应该是不必要的。谢谢你的建议。我99%肯定这是一个回归,因为这以前是有效的。比如:我在2018年7月从Wordpress迁移了一个网站,当时它工作了,但现在不再工作了。@oulenz是的,我真的有点同意。这对我没有任何帮助。但也完全有可能我不知道自己在做什么。
    collections:
      my_collection:
        output: true
        permalink: /:collection/:name/