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

Posted

技术标签:

【中文标题】如何修复 Github 页面上的 HTTP 404?【英文标题】:How to fix HTTP 404 on Github Pages? 【发布时间】:2012-07-19 14:24:18 【问题描述】:

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

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

有什么解释和解决办法吗?

【问题讨论】:

我假设您关注了documentation?您收到电子邮件了吗?- 来自 404:“我们会在您的页面建成后向您发送一封电子邮件。您的页面可能需要十分钟才能可用。” 我尝试了生成的页面,它工作正常。然后我删除了 gh-pages 分支并用我的自定义 html 重建它。我现在至少等了一个小时 请尝试https。如果它正在工作,那么在一段时间后它将与http https 技巧以另一种方式对我有用。我一切正常,设置页面说该网站已发布,给了我正确的网址。但是它一直给出 404。我将 url 更改为 http,它起作用了,然后 https 也起作用了。看起来需要先访问 http 站点才能“激活”它。 对我来说,它在 10-20 分钟后开始工作。它需要时间。所以请耐心等待。 【参考方案1】:

以下操作帮助了我:

webpack 构建:

Webpack 输出.publicPath

publicPath: './'

vite 构建:

vite 基地

base: './'

【讨论】:

【参考方案2】:

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

    在13 line中,添加base:my-project-name;
    重新部署 gh-pages ?

一点猜测:github页面需要部署到非根目录

【讨论】:

【参考方案3】:

在我的情况下,浏览器有我的应用的以前的缓存版本。为避免获取缓存版本,请使用随机查询字符串访问您的 url:

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

【讨论】:

大笨蛋。那是救命稻草 这行得通。但它可能是缓存站点的 github 服务器。【参考方案4】:

我在My Fork 上使用了here 上的所有技巧来修复Github Page 上的第404 页,但它一直保持404'ing。

最后发现我的浏览器几乎没有保留10 minutes cache,然后才出现在网络上。

只需在 URL 末尾添加/index.html 即可显示并解决此问题。

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

【讨论】:

这对我有用。我按照main GitHub Pages page 中的说明创建了这个网站,所以它不能开箱即用有点令人失望。 谢谢!我有同样的问题。奇怪的是我们必须添加 /index.html。 我做了一个软缓存清除,但它没有工作,但添加 /index.html 工作。谢谢 也为我工作过,但这从未发生在我身上,我目前在username.github.io 和username.github.io/<additional-page> 上运行多个页面,并且从未需要附加 index.html跨度> 我必须打开开发控制台并在 url 中强制 index.html。谢谢o/【参考方案5】:

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

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

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

该项目是在假设它托管在 /monsters-rolodex/ 的情况下构建的。

在它不起作用之前,因为在主页 url 中我包含了我的 github 用户名。

【讨论】:

【参考方案6】:

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

【讨论】:

如果你不使用 Jekyll,.nojekyll 是必须的,这里的文档:github.com/blog/572-bypassing-jekyll-on-github-pages 谢谢你,我已经给 github 发了邮件,要求他们更新他们的指南pages.github.com(没有提到 .nojekyll 文件) 谢谢! Vue 应用程序需要它,可惜在 vue-cli 部署指南中没有提及。 这为我修复了它。我的用户网站最初在没有它的情况下工作,但停止工作。您可以在线添加文件并在那里提交。我这样做了,精神焕发,立即奏效。 @bot19 是的,它是 vue-cli deploy 的一部分,它谈到了部署到 GitHub Pages【参考方案7】:

我必须将我的 repo 重命名为一个随机名称,然后将其重命名为原来的名称才能正常工作。

看起来这可能是一个 GH Pages 错误。

【讨论】:

【参考方案8】:

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

转到设置 -> 转到 GitHub Pages 部分并将分支更改为 main:

保存并选择一个主题,网站就上线了。

【讨论】:

【参考方案9】:

我在关注this YT video。因此,当我在终端中运行命令时,它已经将代码推送到 gh-pages 分支。然后我推送到master 分支。它给了我 404 错误。

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

【讨论】:

【参考方案10】:

我昨天遇到了同样的问题(在新设置的 GitHub pages 网站上出现 404)。我尝试了很多方法,例如切换新主题等。但似乎它仍然不适用于我的情况。我终于通过将GitHub pages网站的分支切换到另一个分支来解决这个问题,点击保存。稍等片刻再切换回来。然后问题一下子解决了。

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

我在使用 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"
      ,

【讨论】:

【参考方案14】:

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

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

如果这不起作用,正如 @Hendrikto 在 cmets 中指出的那样,请查看 Github status page 并确保 GitHub Pages 可以运行。

【讨论】:

我使用的是 npm 包 angular-cli-ghpages,我所做的是在我的 index.html 文件中添加一个空格,重新运行命令“npx ngh”,它为我推送了一个新的提交,以实现同样的辉煌成果。谢谢,这让我很困惑,你的回答激励我这样做。 如果您不想使用命令行,您可以直接从 Web 界面编辑 README.md 目录。 也可能是Github本身的问题。 This page 告诉你 Github 的状态。我有同样的问题,没有解决办法。状态页面显示“性能下降”,我只需要等待服务器再次完全正常运行即可。 好点@Hendrikto,我在答案中添加了对您评论的引用。 谢谢你,令人惊讶的是,没有人在任何地方提到这一点,出于某种原因,这个答案没有被选为正确答案。我认为它需要记录在某个地方。您是否还可以提供对 Github 文档的参考? @Arnaud【参考方案15】:

此错误的另一种变体:

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

这是一个致命的错误:

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

来自Publishing with GitHub Pages, now as easy as 1, 2, 3

然后我可以使用Repository / Settings / GitHub Pages 下指定的 published at 链接 访问我的网站页面,然后是 welcome.html或更短的welcome

【讨论】:

【参考方案16】:

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

【讨论】:

【参考方案17】:

就我而言,我的存储库是私有的。公开存储库并再次执行所有步骤。

【讨论】:

【参考方案18】:

另外,GitHub pages doesn't currently support Git LFS。因此,如果您在使用 Git LFS 提交的 GitHub 页面中有图像(或其他二进制资产),您将得到 404 not found for those files。

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

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

【讨论】:

【参考方案19】:

我有同样的问题..非常奇怪的问题.. 我的 HTML 在 title

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

已修复,删除空格后

> <title>
> <script>

【讨论】:

这可能相当于像***.com/a/45907768/124703那样导致站点重建【参考方案20】:

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

<!DOCTYPE html>

【讨论】:

【参考方案21】:

只需等待大约十分钟到一小时。如果还是不行,联系github。通常这是他们最后的问题。 但是,如果您赶时间,可以尝试通过添加“?”来打开。 URL 末尾的问号。它强制查询搜索资源。像这样:

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

【讨论】:

【参考方案22】:

如果您还没有,请在您的 GitHub Pages 设置选项卡中选择 Jekyll 主题。显然 this is required even if you're not using Jekyll 用于您的 Pages 网站。

【讨论】:

我得到 404 Not Found 并尝试了此处答案中建议的所有 18 种其他解决方案,我在一个重复的问题中记录了我的尝试:Very simple HTML resulting in 404 Not Found on GitHub Pages。克里斯的第 19 个答案是为我解决问题的答案。 GitHub Pages 是一项很棒的服务,可惜文档太差了。 仅仅选择一个scheme还不够,你还需要在gh-pages分支上新建一个commit来触发更新!【参考方案23】:

就我而言,2017 年 8 月 8 日

    如果你的用户页面是https://github.com/mgravell,你的repo名称必须是 mgravell.github.io

    在root下,创建一个文件index.html

    在root下,创建文件夹docs,创建文件 CNAMEdocs 下(注意:NO 扩展名如 .txt,确保您的文件 系统显示扩展)

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

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

【讨论】:

CNAME 文件是否应该为空?如果不是,里面应该有什么? @dumbledad 空文件就可以了【参考方案24】:

另一个场景:

使用具有名为&lt;orgname&gt;.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 分支发布

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

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

【讨论】:

【参考方案25】:

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

【讨论】:

【参考方案26】:

就我而言,以上所有建议都是正确的。我的大多数页面都在工作,除了少数返回 404 的页面,即使降价文件在那里并且它们看起来是正确的。以下是在这些页面上为我解决的问题:

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

【讨论】:

【参考方案27】:

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

【讨论】:

【参考方案28】:

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

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

【讨论】:

这有帮助。我的项目起初是私有的,在那个状态下,我将项目推送到 Github 页面,我得到了 404 (ofc)。从gh-pages 切换到master,然后从master 切换回gh-pages 后一切正常,应用程序开始工作。【参考方案29】:

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

原题的url错误,一般可以查看repo设置,找到生成站点的正确url。

但是我一切都设置好了,设置页面说已经发布了,然后我还是看到了404。

感谢@Rohit Suthar 的评论(尽管该评论是使用 https),我将 url 更改为 http 并且它有效,然后 https 也有效。

【讨论】:

【参考方案30】:

如果你确定你的结构是正确的,只需推送一个空的提交或用一些空间更新 index.html 文件,它就可以工作!

【讨论】:

以上是关于如何修复 Github 页面上的 HTTP 404?的主要内容,如果未能解决你的问题,请参考以下文章

jekyll 上的 Github 博客页面总是返回 404?

如何修复此 WordPress 功能使其不返回 404 页面?

如何修复损坏的链接 wordpress web config rewrite index.php 损坏站点链接错误 404

如何修复来自 Axios 的随机 http 请求(404 响应)

Github 页面,图像无法加载 - 服务器以 404 响应图像检索

Prestashop Multistore 上的 404 页面