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

在这里是我在gh-pages分支上的GitHub仓库。 一切看起来都很好,我有我的index.html,我的CSS, JS和图片文件夹

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

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

300079 次浏览

我的页数也保持在404页。联系了技术支持,他们指出url是区分大小写的;解决了我的问题。

四个月前,我联系了技术支持,他们告诉我这是他们方面的问题,他们已经暂时修复了它(目前的提交)。

今天我再次尝试

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

    git push origin --delete gh-pages < / p >

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

    git branch -D gh-pages < / p >

  3. 我重新初始化git

    git init < / p >

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

    git branch gh-pages < / p >

  5. 我把gh-pages分支推到github

    git push origin gh-pages < / p >

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

在这个问题出现之前,我绑定了我的域。我提交并推送了分支gh-pages,它解决了我的问题。新提交迫使jekyll重新构建页面。

在我的例子中,我有名称以_开头的文件夹(如_css_js), GH Pages根据Jekyll处理规则忽略这些文件夹。如果你不使用Jekyll,解决方法是在根目录中放置一个名为.nojekyll的文件。否则,您可以从这些文件夹中删除下划线

我在用gh-pages分支分叉回购后也遇到了同样的问题。我可以通过简单地将一个新的提交(只是index.html中的空白)推到我的fork的gh-pages分支来修复。

在我的例子中8 / 8月/ 2017

  1. 如果你的用户页面是https://github.com/mgravell,你的回购名称必须是 mgravell.github.io < / >强
  2. 在root下,创建一个文件index.html

  3. 在root下,创建文件夹docs,创建文件 CNAMEdocs下(注意:没有扩展名像.txt,确保你的文件 系统显示扩展名)

  4. gh-pages分支是可选的,master分支是充分的

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

在我的例子中,URL相当长。所以,我想这是有限度的。我把它放在我的自定义子域,它工作。

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

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

如果这不起作用,正如@Hendrikto在评论中指出的那样,检查Github状态页并确保GitHub页面是可操作的。

在我的情况下,我不得不去项目设置,并启用github页面。默认是关闭的

我通过删除“用户名。github”来让网站正常工作。在我的电脑上重新执行这些步骤,包括更改index/html文件。

我的错误(我认为)是我最初克隆了“https://github.com/username/username.github.io.”而不是https://github.com/username/username.github.io(没有“.git”)

如果你确定你的结构是正确的,只需要推送一个空的提交,或者更新index.html文件,增加一些空间,就可以了!

如果您看到404,即使一切看起来都是正确的,尝试切换https/http。

原来的问题有错误的url,通常你可以检查回购设置,找到正确的url生成的网站。

然而,我已经正确设置了一切,设置页面说它已经发布,然后我仍然看到404。

感谢@Rohit Suthar的评论(尽管那条评论是要使用https),我把url改为http,它可以工作,然后https也可以工作。

我在我的回购上做了所有的技巧来修复Github page (https://eq19.github.io/)上的404页,但它保持了404'ing。

最后发现我的浏览器几乎不保留10分钟缓存之前,它在网上。

只要将/index.html添加到URL的末尾,它就会出现并解决这个问题。

https://username.github.io/{repoName}/index.html

在一次私人回购中,当我第一次添加并将我的gh-pages分支推到github时,github页面的设置自动更改为指示将发布gh-pages分支,但github没有绿色或蓝色条。IO url,没有自定义域选项。

直到我将源代码切换到master,并快速将源代码切换回gh-pages,它才真正更新了包含已发布url的绿色条。

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

就我而言,上面的建议都是正确的。我有大多数页面工作,除了少数返回404,即使降价文件在那里,他们似乎是正确的。以下是我在这几页上看到的东西:

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

我也遇到了这个问题(404),根本原因是我的文件名为INDEX.md。我在Windows上开发,我的本地Jekyll网站工作正常(因为Windows默认不区分文件名大小写)。当推送到Github时,它不起作用。一旦我将INDEX.md重命名为index.md,事情就运行得很好。

还有另一种情况:

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

gh-pages分支使用生成的html页面进行更新。GitHub Environment选项卡提供了到组织页面的链接。单击它会得到404

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

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

如果我理解正确,GitHub页面将不会从gh-pages分支发布,如果你正在创建一个UserOrganization站点,而不是Project站点。

我重命名了我的repo,使其成为Project站点而不是Organization站点,然后gh-pages分支如预期的那样发布了。

如果还没有,请在GitHub Pages设置选项卡中选择Jekyll主题。显然即使你不使用Jekyll,这也是必须的为您的页面网站。

GitHub settings截图

只要等大约十分钟到一个小时。如果还是不行,联系github。通常是他们的问题。 但是,如果你赶时间,你可以试着在URL的末尾加上“?”问号来打开。它强制查询资源。这样的:< / p >

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

在index.html文件的开头添加以下内容

<!DOCTYPE html>

我也有同样的问题。非常奇怪的问题。 我的HTML在标题

后有空格
> <title>
>
> <script>

固定,去除空间后

> <title>
> <script>

同时,GitHub页面目前不支持Git LFS。因此,如果你在GitHub页面中有图像(或其他二进制资产)使用Git LFS提交,你将得到404不对这些文件。

这对于用Doxygen或类似工具生成的文档来说是很常见的。

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

在我的例子中,我的存储库是私有的。将存储库设为公共并再次执行所有步骤。

这个错误的另一种变体:

我在一个教程后建立了我的第一个Github页面,但给了文件readme.md一个-从我的角度来看-更有意义的名字:welcome.md

这是一个致命的错误:

我们将使用您的README文件作为网站的索引,如果您没有 index.md(或index.html),这与你浏览到

From

我也面临着这个问题,我的页面得到404。 然后我在我的存储库上添加了README.md, 404消失了

我在使用typedocs时遇到了这个问题。README。md工作,但没有实际的文档由我的文档字符串显示,我只是得到了一个404 Github页面屏幕。

要解决这个问题,只需在你的/docs目录(或任何你生成文档的地方)中放置一个空文件。叫它.nojekyll

为了确认,你的文件结构现在应该看起来像:

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

把这个推到你的远程Github回购和你的链接等现在应该工作。

同时确保你在你的Github设置中选择了:

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

取决于你的文档框架,你可能必须在每次更新文档时重新创建这个文件,这是一个使用typedocs &的例子;每次在包中创建.nojekyll文件。json文件:

# package.json


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

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

在我的情况下,在react中有必要选择gh-pages分支:

enter image description here

昨天我遇到了同样的问题(在一个新建立的GitHub页面网站上出现404)。我尝试了很多方法,比如切换一个新的主题等。但它似乎对我的案子仍然不起作用。我最终通过将GitHub页面网站的分支切换到另一个分支来解决这个问题,单击保存。等一会儿再换回去。然后问题突然解决了。

我遵循YT视频。因此,当我在终端中运行该命令时,它已经将代码推到gh-pages分支。然后我推到master分支。它给了我404错误。

然后我将分支交换到master,然后再次返回到gh-pages,现在错误消失了。它指向index.html,即使它不在URL中。

我也面临着同样的问题,在尝试了上面提到的大多数方法后,我都无法得到解决方案。在我的情况下,由于Github更改master的名称为main分支的问题。

转到Setting ->进入GitHub Pages部分,将分支改为main:

enter image description here

enter image description here

保存它,并选择一个主题,网站是实时的。

我不得不将我的回购重命名为一个随机的名字,然后重命名为它原来的名字,让它工作。

看起来可能是GH Pages漏洞。

在我的情况下,浏览器有我的应用程序的以前的缓存版本。为了避免获得缓存版本,访问你的url使用一个随机查询字符串:

https://\{\{your-username}}.github.io/\{\{your-repository}}?randomquery

我的解决方案是在package.json中设置正确的homepage

我的项目名称是monsters-rolodex,我正在从控制台gh-pages -d build发布。

"homepage": "https://github.com/monsters-rolodex",

该项目构建时假设它托管在/monsters-rolodex/。

之前它不工作,因为在主页url我包括我的github用户名。

我使用umijs来打包和部署项目到github页面。以下操作帮助了我:

    1. 13行中,添加base: my-project-name;
    1. 重新部署gh-pages🚀

稍微猜测一下:github页面需要部署到一个非根目录

以下操作帮助了我:

webpack构建:

Webpack output.publicPath

publicPath: './'

轻快地构建:

轻快地基础

base: './'

对我来说,关键是认识到你可以通过到你的github repo中的“Actions”选项卡看到构建过程中的错误消息。点击最新的“页面构建和部署”工作流显示了阻止发布的错误消息(my _config.yml中的一个简单错误)。

你的GitHub页面在http://roine.github.io/p1而不是http://roine.github.com/p1可用。

顺便说一下,您可以修改项目的描述。

如果你使用的是Angular这样的框架,你可能需要设置基本的href路径: https://stackoverflow.com/a/54409380/1585161 < / p >

使用Angular CLI: ng build --baseHref="/users/"

或者更一般地:<base href="/users/">

还要确保你的图像资产以./assets开头,而不是/assets

今天又遇到了同样的问题。在我的情况下,我添加脚本为module,这导致HTTP 404试图获取文件时,部署与Github页面。我不得不改变我的捆扎机使它工作。

in the index.html file


DID NOT WORK:
<script type="module" src="./index.4b5c177027.js"></script>


WORKS:
<script src="./index.4b5c177027.js"></script>

最好的

在我的情况下,我最近为GitHub页面设置了一个自定义域,但GitHub已经忘记了我在(repo)<name>.github.io / Settings / pages下的自定义域。

我再次添加了自定义域,然后它立即开始工作。