如何修复 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
,创建文件
CNAME
在docs
下(注意:NO 扩展名如 .txt,确保您的文件
系统显示扩展)
gh-pages
分支是可选的,master
分支就足够了
更多:在此处查看官方文档:https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/
【讨论】:
CNAME 文件是否应该为空?如果不是,里面应该有什么? @dumbledad 空文件就可以了【参考方案24】:另一个场景:
使用具有名为<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
分支发布
如果我理解正确,如果您创建的是 User
或 Organization
站点而不是 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 响应)