如何在Github页面上修复HTTP 404?


166

是我在gh-pages分支机构上的GitHub存储库。一切看起来不错,我有index.html我的CSS,JS和图片文件夹。

但是当我访问http://roine.github.com/p1时,找不到HTTP 404。

有什么解释和解决方案吗?


2
我假设您遵循了文档?您收到电子邮件了吗?-从404:“我们将在您的页面建立后向您发送电子邮件。最多可能需要十分钟才能显示您的页面。”
大卫·凯恩

我尝试了生成的页面,并且工作正常。然后,我删除了gh-pages分支,并使用我的自定义html对其进行了重建。我一直在等待至少一个小时
乔纳森·德·M

1
请尝试https。如果它能正常工作,那么几天后,它将与http
Rohit Suthar

1
https技巧以另一种方式对我有效。我一切正常,设置页面上说该网站已发布,并给了我正确的网址。但是它一直提供404。我将URL更改为http,它起作用了,然后https也起作用了。似乎需要先访问http网站才能“激活”它。
dracodoc

2
对我来说,它在10到20分钟后开始工作。需要时间。所以要耐心点。
MechaCode

Answers:


181

我所有的文件只有一次提交。我推送了一个空的提交,刷新了页面,然后工作了。

git commit --allow-empty -m "Trigger rebuild"
git push

如果这不起作用,如@Hendrikto在评论中指出的,请查看Github状态页面并确保GitHub Pages正常运行。


2
我使用的是npm软件包angular-cli-ghpages,我所做的是在index.html文件中添加了一个空格,然后重新运行命令“ npx ngh”,该命令为我推送了一个新提交,从而获得了同样出色的结果。谢谢,这让我感到难过,您的回答启发了我去做。
帕特里克·格雷厄姆

如果您不想使用命令行,则可以从Web界面编辑README.md目录。
Christophe Le Besnerais,

2
Github本身也可能是一个问题。本页告诉您Github的状态。我遇到了同样的问题,没有解决办法。状态页显示“性能下降”,我只需要等待服务器再次完全正常运行即可。
亨德里克托

好的@Hendrikto,我在答案中添加了对您的评论的引用。
Nycen

77

就我而言,我的文件夹名称以 _(如_css_js),根据Jekyll处理规则,GH Pages会忽略该。如果您不使用Jekyll,解决方法是.nojekyll在根目录中放置一个名为的文件。


4
如果您不使用Jekyll,.nojekyll是必须的,请访问以下文档:github.com/blog/572-bypassing-jekyll-on-github-pages
Claudiu Constantin

2
谢谢你,我已经给github发了电子邮件,并请他们在pages.github.com(未提及.nojekyll文件)上更新他们的指南。–
sunyata

1
谢谢!它是Vue应用程序所必需的,太糟糕了,在vue-cli部署指南中未提及。
的OndrejŠevčík

这为我解决了。我的用户站点最初没有它就可以工作,但是停止了工作。您可以在线添加文件并在那里提交。我做到了,刷新后立即起作用。
bot19

@Supuhstar谢谢兄弟。您救了我的命)
voronovam

73

我做了所有的招数在这里我的叉子,以404页的修复上Github上页但它仍保持404状态。

Finaly发现我的浏览器几乎无法保留10分钟的缓存然后再将其在网络上。

只需添加/index.html到URL的末尾,然后它就会显示出来并解决了问题。

https://username.github.io/index.html


1
这对我有用。我按照GitHub Pages主页上的说明创建了该网站,因此它有点令人失望,因为它无法立即使用。
CGK

1
谢谢!我有同样的问题。我们必须添加/index.html,这很奇怪。
Raja Rao

1
我清除了一个软缓存,但是没用,但是添加/index.html可以用。谢谢
泰格顿亲王'19

1
同样为我工作,但这从来没有发生过,我目前在username.github.iousername.github.io/ <additional
Sanchit Batra

我必须打开开发控制台并在URL中强制使用index.html。谢谢o /
heavyrick

50

四个月前,我已经联系了支持人员,他们告诉我这是一个问题,他们已经临时修复了该问题(针对当前提交)。

今天我再试一次

  1. 我在github上删除了gh-pages分支

    git push origin --delete gh-pages

  2. 我删除了本地的gh-pages分支

    git branch -D gh-pages

  3. 我重新初始化了git

    git init

  4. 我在本地重新创建了分支

    git branch gh-pages

  5. 我将gh-pages分支推送到github

    git push origin gh-pages

工作正常,我终于可以在页面上更新我的文件了。


31
显然,您甚至不需要删除本地分支。公正git checkout gh-pages ; git push origin --delete gh-pages ; git push origin,您就完成了。
有趣的是,

4
删除远程分支并再次推送我的问题即可解决。一分钟后页面可见。
Kulbi 2014年

我认为这应该是一个“孤儿”分支
Wayofthefuture

只需删除原始分支(“ gh-pages”)并重新进行所有操作即可。为我工作!
wle8300

34

如果尚未安装,请在GitHub Pages设置选项卡中选择一个Jekyll主题。显然,即使您未在页面页面上使用Jekyll这也是必需的

GitHub设置屏幕截图


8
我收到404 Not Found并尝试了答案中建议的所有其他十八种解决方案,我在一个重复的问题中记录了我的尝试:非常简单的HTML导致GitHub Pages上出现404 Not Found。克里斯的第19个答案就是为我解决的答案。GitHub Pages是一项很棒的服务,可惜文档太差了。
dumbledad

3
仅选择一个方案还是不够的,还需要在gh-pages分支上创建一个新的提交以随后触发更新!
sschuberth

20

分叉仓库后,我遇到了同样的问题gh-pages。我能够通过简单地将一个新的提交(只在空格中index.html)推到fork的gh-pages分支来进行修复。


我在“ index.html”中放置一个空格,提交并推送了更改。什么都没有发生。从文件名中删除空格,提交并再次推送更改,它起作用了!谢谢。
Nahiyan '17年

还请注意,github页面使用一个小的缓存窗口(在撰写本文时为10分钟:)Cache-Control:max-age=600。因此您可能还必须等待该缓存窗口到期或强制刷新浏览器。
粘土

1
为什么要弄乱空白?只需使用推动一个空提交即可--allow-empty
Hendrikto

18

就我而言,20178月8日

  1. 如果您的用户页面为https://github.com/mgravell,则您的回购名称必须为 mgravell.github.io
  2. 在根目录下,创建一个文件 index.html

  3. 在根目录下,创建一个文件夹docsCNAME在下面创建文件 docs(注意:没有扩展名,如.txt,请确保您的文件系统显示扩展名)

  4. gh-pages分支是可选的,master分支就足够了

更多:在这里查看官方文档:https : //help.github.com/articles/configuring-a-publishing-source-for-github-pages/


1
它做了!添加一个空的docs文件夹和空的CNAME文件(无扩展名),就成功了!
何塞A

这里也缺少CNAME :)
Frexuz

CNAME文件应该为空吗?如果不是,那应该是什么?
dumbledad

@dumbledad空文件会很好
永恒的

15

只需等待大约十分钟到一个小时。如果仍然无法正常工作,请联系github。通常这是他们的问题所在。但是,如果您很着急,可以尝试通过添加“?”来打开。URL末尾的问号。它强制查询搜索资源。像这样:

http://roine.github.com/p1?


14

我的页面也保持404状态。联系支持人员,他们指出url区分大小写。解决了我的问题。


2
在与支持人员联系之前,我已经尝试过(无论有无资本
Jonathan de M.



2

就我而言,我必须去项目设置并启用github页面。默认为关闭



2

就我而言,以上所有建议都是正确的。我的大多数页面都在工作,但很少有返回404的页面,即使Markdown文件在那里并且看上去正确。以下是这些页面上为我解决的问题:

  • 在一页上,有一些特殊字符不属于 UTF-8,我认为这就是GitHub页面无法呈现它们的原因。更新/删除这些字符并推送新的提交将其修复。
  • 在另一页上,我发现'标题周围有撇号,我将其删除,页面内容开始显示正常

2

我在typedocs中遇到了这个确切的问题。README.md可以正常工作,但是显示的文档字符串都不生成任何实际文档,我只有404 Github Pages屏幕。

要解决此问题,只需将一个空文件放在/ docs目录中(或生成文档的任何位置)并调用它 .nojekyll

为了确认,您的文件结构现在应如下所示:

./docs/.nojekyll  # plus all your generated docs

将此推送到您的远程Github存储库,您的链接等现在应该可以正常工作了。

另外,请确保已在Github设置中选择了:

Settings -> Github Pages -> Source -> master brach /docs folder

根据您的文档框架,您可能每次更新文档时都必须重新创建此文件,这是一个使用typedocs并每次在package.json文件中创建.nojekyll文件的示例:

# package.json

      "scripts": {
        "typedoc": "typedoc --out docs src && touch docs/.nojekyll"
      },

1

在出现此问题之前,我已绑定域。我承诺并推动了分支gh-pages,它解决了我的问题。新提交迫使jekyll重建您的页面。



1

如果您看到404甚至一切都正常,请尝试切换https / http。

原始问题的网址错误,通常您可以检查回购设置并为生成的站点找到正确的网址。

但是我已经正确设置了所有内容,并且设置页面说它已经发布,然后我仍然看到404。

感谢@Rohit Suthar的评论(尽管该评论使用的是https),我将URL更改为http并可以使用,然后https也可以使用。


1

在一个私有仓库中,当我第一次将gh-pages分支添加并推到github时,github页面的设置会自动更改以指示gh-pages分支将被发布,但是github.io上没有绿色或蓝色条网址,没有自定义域选项。

直到我将源切换为master并迅速将源切换回gh页,它实际上才用包含已发布网址的绿色栏进行更新。


1
这会有所帮助。我的项目起初是私有的,在那种状态下,我将项目推送到Github页面,得到404(ofc)。从切换后gh-pagesmaster从,然后回mastergh-pages一切都很好,并且应用程序启动工作。
Zrna

1

此错误的另一个变体:

我在完成教程后设置了我的第一个Github页面,但是给文件readme.md一个-从我的角度-更有意义的名称:welcome.md

那是一个致命的错误:

我们会根据您的README文件作为网站的索引,如果你没有一个 index.md(或index.html),而不是当你浏览到GitHub上的仓库一样。

发布与GitHub的页,现在一样容易1,2,3

当时我能够使用访问我的网站页面published at的链接下指定Repository/ Settings/ GitHub Pages其次welcome.html或更短welcome


1

由于某些原因,GitHub页面的部署今天(2020年5月5日)停止工作。以前我没有任何HTML,只有md文件。我试图创建一个index.html,它立即发布了该页面。删除index.html之后,发布将继续工作。


1

就我而言,react是选择gh-pages分支的必要条件:

在此处输入图片说明


0

转到存储库的“设置”部分,然后在“源”部分选择master分支,然后在刷新页面后单击“保存”按钮,您将能够看到页面的链接!。


0

我也遇到了这个问题(404),根本原因是我的文件名为INDEX.md。我在Windows上进行开发,并且我的本地Jekyll站点正常工作(因为Windows默认情况下将文件名区分大小写)。当推到Github时,它不起作用。一旦将重命名INDEX.mdindex.md,一切运行良好。


0

还有另一种情况:

  • 使用具有名为存储库的组织页面(而非项目页面) <orgname>.github.io
  • 将源文档作为master分支中的标记(asciidoc)
  • Travis CI从中提取源文档文件master并将生成的html文件推入gh-pages分支

gh-pages分支将使用生成的html页面进行更新。GitHub Environment选项卡提供了指向组织页面的链接。点击它会导致一个404

根据 https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

具有这种存储库名称类型的用户和组织页面仅从master分支发布

如果我正确理解这一点,gh-pages则在创建UserOrganization站点而不是站点时,将不会从分支发布GitHub PagesProject网站。

我将存储库重命名为Project站点而不是Organization站点,然后gh-pages按预期发布了分支。


0

我遇到了同样的问题。非常奇怪的问题。我的HTML 标题后面有空格

> <title>
> 
> <script>

固定,删除空间后

> <title>
> <script>

0

另外,GitHub页面当前不支持Git LFS。这样,如果您在使用Git LFS提交的GitHub页面中具有图像(或其他二进制资产),则将得到未找到这些文件的404。

这对于使用Doxygen或类似工具生成的文档非常普遍。

在这种情况下,解决方案是不使用Git LFS提交那些文件。



0

我也遇到了这个问题,我的页面变成了404。然后我在存储库中添加了README.md,但404却消失了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.