Url 在Jekyll+;GitHub页面站点原因404
我希望在我的网站上解析以下所有URL,该网站使用Jekyll构建并托管在GitHub页面上: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。我想这比当前的行为要好,但我更希望这三个选项都能单独工作,或者重定向到一个能工作的选项 如果相关,我会在布局模板的中
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/