Http status code 404 使用自定义域时,Github页面相对链接不起作用
我使用的Github页面没有Jekyll,只是简单的markdownHttp status code 404 使用自定义域时,Github页面相对链接不起作用,http-status-code-404,markdown,github-pages,relative-path,github-flavored-markdown,Http Status Code 404,Markdown,Github Pages,Relative Path,Github Flavored Markdown,我使用的Github页面没有Jekyll,只是简单的markdown.md文件 要从.md链接到我的repo中的某个文件夹,我使用的是相对链接 为什么是相对链接?我使用的是绝对链接,比如,但后来我更改了我的回购名称,每个链接都停止工作 这就是为什么我移动到相对链接,但当我检查页面如何在自定义域->每个链接停止工作 所谓“停止”工作,我的意思是:现在当我进入www.CUSTOM_DOMAIN.com/REPO_NAME/FOLDER_NAME时,我得到了404 编辑1: 当我试图编辑此问题时,我
.md
文件
要从.md
链接到我的repo中的某个文件夹,我使用的是相对链接
为什么是相对链接?我使用的是绝对链接,比如,但后来我更改了我的回购名称,每个链接都停止工作
这就是为什么我移动到相对链接,但当我检查页面如何在自定义域->每个链接停止工作
所谓“停止”工作,我的意思是:现在当我进入www.CUSTOM_DOMAIN.com/REPO_NAME/FOLDER_NAME时,我得到了404
编辑1:
当我试图编辑此问题时,我意识到问题不同: -指向文件的链接可以正常工作 -但文件夹链接不起作用,即未将REPO_名称添加到URI中,应该有:
www.CUSTOM_DOMAIN.com/REPO_NAME/FOLDER_NAME
虽然实际上有:
www.CUSTOM_DOMAIN.com/FOLDER_NAME.
因此,我的回购协议如下所示:
REPO_NAME/
├── README.md
├── FOLDER_NAME/
│ ├── FOLDERFILE.md
[REPO_NAME](../) <= step back one directory
[README.md](../README.md) <= step back one directory
[FOLDER_NAME](./) <= the current directory
因此,我的README.md
中的链接是(NOK):
当我链接到一个文件时,它可以正常工作,如下所示(确定):
编辑2:
我试图修复的页面不是组织/用户页面,因此路径中应该有REPO_名称
编辑3:
我更改了链接以删除前导斜杠,但它们仍然不起作用。现在我的
README.md
中的链接是(NOK):
或(也可以是NOK):
你有两个问题:
FOLDERFILE.md
文件中的任何链接如下所示:
REPO_NAME/
├── README.md
├── FOLDER_NAME/
│ ├── FOLDERFILE.md
[REPO_NAME](../) <= step back one directory
[README.md](../README.md) <= step back one directory
[FOLDER_NAME](./) <= the current directory
如果有帮助,您可以使用当前目录(/
)启动所有URL。虽然没有必要,但有些人觉得它更具可读性。在这种情况下,README.md
文件如下所示
服务器根目录
理解服务器根目录和站点根目录之间的差异非常重要。当它们相同时,绝对链接可以正常工作。但是,当它们不同时,只有真正的相对链接可以跨这两个目录工作
当您使用GitHub提供的域设置GitHub页面时,您的站点位于https://USERNAME.github.io/REPO_NAME
。在这种情况下,服务器根目录位于USERNAME.github.io/
,这就是/
指向的位置。但是,您的站点的根目录位于子目录/REPO\u NAME
中。因此,对于绝对值要使用URL,必须在URL中包含/REPO\u NAME/
但是,设置自定义域时,服务器根目录和站点根目录位于同一位置:https://example.com/
。没有REPO\u NAME
子目录。REPO\u NAME
的内容位于/
举例来说,根据您使用的是GitHub域还是自定义域,以下URL指向相同的位置
GitHub Domain | Custom Domain
------------------------------------ | --------------------------
/REPO_NAME/ | /
/REPO_NAME/README.md | /README.md
/REPO_NAME/FOLDER_NAME/ | /FOLDER_NAME/
/REPO_NAME/FOLDER_NAME/FOLDERFILE.md | /FOLDER_NAME/FOLDERFILE.md
这种差异就是为什么你需要使用真正的相对URL——URL不是以
/
开头的。你能编辑你的问题并提供一些相对链接的例子吗(包括源页面和目标页面)。如果您指出您希望相对链接指向的绝对URL以及实际指向的位置,也会有所帮助。@Waylan问题已编辑,我希望现在不要太抽象!我添加了编辑问题(编辑2)因为我认为这可能会影响答案。您的编辑对我来说毫无意义。当您在浏览器中查看README.md时,它的完整地址是什么?README.md只是从github web界面创建repo时添加的标准README文件;它是(一如既往)在repo rootYes,但是当您访问该页面时,浏览器地址栏中的URL是什么?不,当您在GitHub页面(使用您的自定义域)上查看该页面时,地址是什么?
[REPO_NAME](../) <= step back one directory
[README.md](../README.md) <= step back one directory
[FOLDER_NAME](./) <= the current directory
[REPO_NAME](./)
[FOLDER_NAME](FOLDER_NAME/)
[FOLDERFILE.md](FOLDER_NAME/FOLDERFILE.md)
[REPO_NAME](./)
[FOLDER_NAME](./FOLDER_NAME/)
[FOLDERFILE.md](./FOLDER_NAME/FOLDERFILE.md)
GitHub Domain | Custom Domain
------------------------------------ | --------------------------
/REPO_NAME/ | /
/REPO_NAME/README.md | /README.md
/REPO_NAME/FOLDER_NAME/ | /FOLDER_NAME/
/REPO_NAME/FOLDER_NAME/FOLDERFILE.md | /FOLDER_NAME/FOLDERFILE.md