How to fix HTTP 404 on Github Pages?
Asked Answered
H

46

260

Here is my GitHub repository on the gh-pages branch. Everything looks good, I have my index.html, my CSS, JS and pictures folders.

But when I access http://roine.github.com/p1 I get HTTP 404 not found.

Any explanation and solution?

Hadleigh answered 20/7, 2012 at 10:2 Comment(7)
I assume you followed the documentation? Have you got an email?- From the 404: "We'll send you an email when your page has been built. It may take up to ten minutes until your page is available."Doing
I tried the generated page, and it was working fine. Then I have remove gh-pages branch and rebuild it with my custom html. I'm waiting since at least one hour nowHadleigh
I contacted the github support, and they said it was a problem on their side, and they fixed it manuallyHadleigh
please try with https. if it's working then after few time it will for with httpSporocyst
the https trick worked for me in another way. I have everything right and the setting page said the site is published, gave me the right url. However it keep giving 404. I changed the url to http, it worked, then https worked too. Looks like the http site need to be accessed to "activate" it first.Preterit
For me it started working after 10-20 mins. Its takes time. So be patient.Perichondrium
#53797821Placoid
H
63

Four months ago I have contacted the support and they told me it was a problem on their side, they have temporarily fix it (for the current commit).

Today I tried again

  1. I deleted the gh-pages branch on github

    git push origin --delete gh-pages

  2. I deleted the gh-pages branch on local

    git branch -D gh-pages

  3. I reinitialized git

    git init

  4. I recreated the branch on local

    git branch gh-pages

  5. I pushed the gh-pages branch to github

    git push origin gh-pages

Works fine, I can finally update my files on the page.

Hadleigh answered 11/12, 2012 at 2:27 Comment(4)
Apparently, you don't even need to delete your local branch. Just git checkout gh-pages ; git push origin --delete gh-pages ; git push origin and you're done.Furcula
Deleting remote branch and pushing mine again solved the problem. Page was visible after a minute.Ferrol
I think it's suppose to be an "orphan" branchKnotgrass
Just had to delete the origin branch ("gh-pages") and re-did everything. Worked for me!Distance
D
270

I had just one commit with all my files. I pushed an empty commit, refreshed the page and it worked.

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

If this doesn't work, as @Hendrikto pointed out in the comments, check out the Github status page and make sure GitHub Pages are operational.

Dramamine answered 27/8, 2017 at 17:51 Comment(7)
I was using the npm package angular-cli-ghpages and what I did was add a space to my index.html file, reran the command "npx ngh" which pushed a new commit for me acheiving the same glorious results. Thanks, this had me stumped and your answer inspired me to do this.Buchanan
if you don't want to use the command line you can just edit your README.md direclty from the web interface.Showily
It may also be a problem with Github itself. This page tells you the status of Github. I had the same problem, and no fix worked. The status page said "degraded performance", and I just had to wait for the servers to be fully functional again.Descendent
Good point @Hendrikto, I added a reference to your comment in the answer.Dramamine
thank you surprisingly nobody has mentioned this anywhere and for some reason, this answer is not chosen as the right answer. I think it needs to be documented somewhere. Can you also provide a reference to the Github doc perhaps? @DramamineYellowstone
I did this, and now I no longer see a 404, but (perhaps even worse), now I see "ERR_TOO_MANY_REDIRECTS". Huh?Stalag
@Stalag Probably a problem with your DNS setup.Dramamine
U
129

I did all the tricks on my repo to fix page 404 on Github Page (https://eq19.github.io/) but it kept 404'ing.

Finaly found that my browser hardly keep the 10 minutes cache before it up on the web.

Just add /index.html into the end of URL then it showed up and solved the case.

https://username.github.io/{repoName}/index.html
Unlace answered 26/4, 2018 at 3:31 Comment(8)
This worked for me. I created the site following the instructions in the main GitHub Pages page so its kinda disappointing that it doesn't work out of the box.Hebrides
Thanks! I had the same problem. It's bizarre that we have to add /index.html.Maxma
I did a soft cache clear but it didnt work but adding /index.html worked. ThanksTranslator
Worked for me as well but this has never happened to me before, I currently have multiple pages running on both username.github.io and username.github.io/<additional-page> and have never needed to append an index.htmlWack
i had to open the dev console and force index.html in the url. Thanks o/Burglarious
hmmm 404 says a resource is missing, i find it hard to believe that chrome caches the 404 error code. Maybe the html, but not the 404Bristow
it was useful for meTension
This worked for me username.github.io/home.htmlEusebioeusebius
F
127

In my case, I had folders whose names started with _ (like _css and _js), which GH Pages ignores as per Jekyll processing rules. If you don't use Jekyll, the workaround is to place a file named .nojekyll in the root directory. Otherwise, you can remove the underscores from these folders

Furnivall answered 25/9, 2016 at 20:23 Comment(8)
.nojekyll is a must if you're not using Jekyll, docs here: github.com/blog/572-bypassing-jekyll-on-github-pagesChesterfield
Thank you for this, I have emailed github and asked them to update their guide at pages.github.com (which doesn't mention the .nojekyll file)Rumpf
Thanks! It was required for Vue app, too bad it is not mentioned in vue-cli deploy guide.Gadwall
this fixed it for me. My user site was originally working without it but stopped working. You can just add a file online and commit it there too. I did this, refreshed and it instantly worked.Anabiosis
@OndřejŠevčík Is vue-cli specifically about GitHub page deployment? If no, then it is not really their role to warn about footguns on all possible hostingsDiaphony
@Anabiosis yeah, it was part of vue-cli deploy that talked about deploying to GitHub PagesGadwall
Was using Astro which now uses a _astro sub-directory to serve bundles. Thanks OP!Amaral
This is a miracle comment for anyone deploying a NextJS application via the _next directory.Constructivism
H
63

Four months ago I have contacted the support and they told me it was a problem on their side, they have temporarily fix it (for the current commit).

Today I tried again

  1. I deleted the gh-pages branch on github

    git push origin --delete gh-pages

  2. I deleted the gh-pages branch on local

    git branch -D gh-pages

  3. I reinitialized git

    git init

  4. I recreated the branch on local

    git branch gh-pages

  5. I pushed the gh-pages branch to github

    git push origin gh-pages

Works fine, I can finally update my files on the page.

Hadleigh answered 11/12, 2012 at 2:27 Comment(4)
Apparently, you don't even need to delete your local branch. Just git checkout gh-pages ; git push origin --delete gh-pages ; git push origin and you're done.Furcula
Deleting remote branch and pushing mine again solved the problem. Page was visible after a minute.Ferrol
I think it's suppose to be an "orphan" branchKnotgrass
Just had to delete the origin branch ("gh-pages") and re-did everything. Worked for me!Distance
E
46

If you haven't already, choose a Jekyll theme in your GitHub Pages settings tab. Apparently this is required even if you're not using Jekyll for your Pages site.

GitHub settings screenshot

Ensphere answered 23/3, 2019 at 15:25 Comment(2)
I was getting 404 Not Found and having tried all eighteen of the other solutions suggested in answers here I documented my attempts in a duplicate question: Very simple HTML resulting in 404 Not Found on GitHub Pages. Chris's 19th answer was the one that fixed it for me. GitHub Pages is a great service, it is a shame the documentation is so poor.Caulis
Just choosing a scheme still is not enough, you also need to create a new commit on the gh-pages branch to trigger an update afterwards!Carolinacaroline
H
23

I had the same issue after forking a repo with a gh-pages branch. I was able to fix by simply pushing a new commit (just whitespace in index.html) to my fork's gh-pages branch.

Hermon answered 30/1, 2017 at 7:32 Comment(3)
I put a whitespace in "index.html", committed and pushed changes. Nothing happened. Removed whitespace from the filename, committed and pushed changes again and it worked! Thanks.Blackguard
also note that github pages use a small caching window (10 minutes at the time of writing: Cache-Control:max-age=600). so you may also have to wait on that cache window to expire or force refresh your browser.Hermon
Why mess with the whitespace? Just push an empty commit with --allow-empty.Descendent
W
20

In my case on 8/Aug/2017

  1. if your user page is https://github.com/mgravell, you repo name must be mgravell.github.io
  2. under root, create a file index.html

  3. under root, create a folder docs, create a file CNAME under docs (note: NO extension like .txt, make sure your file system shows extension)

  4. gh-pages branch is optional, master branch is sufficient

more: check official docs here: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

Warthog answered 8/8, 2017 at 6:40 Comment(2)
Should the CNAME file be empty? If not what should be in it?Caulis
@Caulis empty file will be fineWarthog
E
20

Just wait about ten minutes to one hour. If it still doesn't work, contact github. Usually it's the problem at their end. But, if you're in a hurry, you can try to open by adding "?" question mark at the end of URL. It force query to search for the resource. Like this:

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

Exposed answered 9/5, 2019 at 10:28 Comment(1)
The question mark trick works for webpages, but doesn't seem to work for directories that autoredirect to index.htmlSprung
C
18

In my case the browser had a previous cached version of my app. To avoid getting the cached version, access you url using a random query string:

https://{{your-username}}.github.io/{{your-repository}}?randomquery
Chew answered 13/1, 2021 at 10:46 Comment(2)
Big uff. That was a lifesaverMercurialism
This works. But it could be the github server which cached the site.Hoad
D
13

My pages also kept 404'ing. Contacted support, and they pointed out that the url is case sensitive; solved my issue.

Danner answered 1/11, 2012 at 0:42 Comment(1)
I already tried both, with and without capital, before contacting the supportHadleigh
C
6

in my case i had to go to project settings and enable the github pages. The default is off

Crossindex answered 9/9, 2017 at 19:3 Comment(2)
This one and choosing a Jekyll theme (even though I don't want to use Jekyll) is what fixed mine. Also, I had originally had my repo set to private. I guess that doesn't work with Github Pages.Autoionization
This did the trick, although it messed my github page url real good. It's incredible they don't mention a single time this need of turning github pages ON in their tutorial page pages.github.com.Peraea
P
5

If you saw 404 even everything looks right, try switching https/http.

The original question has the url wrong, usually you can check repo settings and found the correct url for generated site.

However I have everything set up correctly, and the setting page said it's published, then I still saw 404.

Thanks for the comment of @Rohit Suthar (though that comment was to use https), I changed the url to http and it worked, then https worked too.

Preterit answered 19/1, 2018 at 15:47 Comment(0)
E
4

Add the following in the beginning of the index.html file

<!DOCTYPE html>
Erminna answered 11/5, 2019 at 17:48 Comment(0)
F
4

In my case in react was necessary to select the gh-pages branch:

enter image description here

Flagship answered 21/5, 2020 at 10:4 Comment(0)
P
4

I was facing the same issue, after trying most of the methods mentioned above I couldn't get the solution. In my case the issue of because of Github changing the name of master to main branch.

Go to Setting -> go to GitHub Pages section and change the branch to main:

enter image description here

to

enter image description here

Save it and select a theme, and the website is live.

Papoose answered 16/10, 2020 at 11:34 Comment(0)
W
3

If you are sure that your structure is correct, just push an empty commit or update the index.html file with some space, it works!

Waugh answered 17/10, 2017 at 12:54 Comment(0)
S
3

I had this exact problem with typedocs. The README.md worked but none of the actual docs generated by my doc strings displayed, I just got a 404 Github Pages screen.

To fix this, just place a empty file in your /docs directory (or wherever you generate your docs) & call it .nojekyll

To confirm, your file structure should now look like:

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

Push this up to your remote Github repo and your links etc should work now.

Also make sure you have selected in your Github settings:

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

Depending on your doc framework, you probably have to recreate this file each time you update your docs, this is an example of using typedocs & creating the .nojekyll file each time in a package.json file:

# package.json

      "scripts": {
        "typedoc": "typedoc --out docs src && touch docs/.nojekyll"
      },
Shutt answered 24/4, 2020 at 22:40 Comment(0)
T
3

The solution for me was to set right the homepage in package.json.

My project name is monsters-rolodex and I am publishing from console gh-pages -d build.

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

The project was built assuming it is hosted at /monsters-rolodex/.

Before it didn't work because in the homepage url I included my github username.

Transpadane answered 10/2, 2021 at 10:46 Comment(0)
I
2

I got the site to work by deleting the "username.github.io" folder on my computer going through the steps again, including changing the index/html file.

My mistake (I think) is that i initially cloned "https://github.com/username/username.github.io.git" instead of https://github.com/username/username.github.io (no ".git")

Interlingua answered 25/9, 2017 at 15:59 Comment(0)
S
2

In my case, all the suggestions above were correct. I had most pages working except few that were returning 404 even though the markdown files are there and they seemed correct. Here is what fixed it for me on these pages:

  • On one page, there were a few special characters that are not part of UTF-8 and I think that's why GitHub pages was not able to render them. Updating/removing these char and pushing a new commit fixed it.
  • On another page, I found that there were apostrophes ' surrounding the title, I removed them and the page content started showing fine
Stink answered 20/7, 2018 at 7:11 Comment(0)
S
2

Another variant of this error:

I set up my first Github page after a tutorial but gave the file readme.md a - from my perspective - more meaningful name: welcome.md.

That was a fatal mistake:

We’ll use your README file as the site’s index if you don’t have an index.md (or index.html), not dissimilar from when you browse to a repository on GitHub.

from Publishing with GitHub Pages, now as easy as 1, 2, 3

I was then able to access my website page using the published at link specified under Repository / Settings / GitHub Pages followed by welcome.html or shorter welcome.

Supercargo answered 22/9, 2019 at 16:6 Comment(0)
P
2

For some reason, the deployment of the GitHub pages stopped working today (2020-may-05). Previously I did not have any html, only md files. I tried to create an index.html and it published the page immediately. After removal of index.html, the publication keeps working.

Pussyfoot answered 5/5, 2020 at 2:20 Comment(0)
E
2

I was following this YT video. So, when I ran the command in my terminal, it pushed the code to gh-pages branch already. Then I pushed to the master branch. It was giving me 404 error.

Then I swapped the branch to master and then again reverted to gh-pages and now the error is gone. It's pointing to the index.html even if it's not in the URL.

Erne answered 13/10, 2020 at 14:30 Comment(0)
B
2

In my case it was that I had recently set up a custom domain for GitHub pages, but GitHub had forgotten my custom domain under (repo)<name>.github.io / Settings / Pages.

I added the custom domain again and then it immediately started working.

EDIT: I forgot to update this at the time, but now that I got an upvote I am adding more info.

The real reason that the domain was forgotten is that GitHub adds a commit on top of your repo with a special file called CNAME that contains the information. If you remove that file by mistake (rebase or force-push) then the domain mapping is also removed.

Barnacle answered 1/11, 2022 at 21:3 Comment(0)
T
1

I bound my domain before this problem appeared. I committed and pushed the branch gh-pages and it solved my problem. New commits force jekyll to rebuild your pages.

Throwaway answered 20/7, 2012 at 10:2 Comment(0)
W
1

In my case, the URL was quite long. So, I guess there is a limit. I put it to my custom subdomain and it worked.

Whelk answered 19/8, 2017 at 20:41 Comment(0)
L
1

On a private repo, when I first added and pushed my gh-pages branch to github, the settings for github pages automatically changed to indicate that the gh-pages branch would be published, but there no green or blue bar with the github.io url and no custom domain options.

It wasn't until I switched the source to master and quickly switched the source back to gh-pages that it actually updated with the green bar that contains the published url.

Littles answered 12/6, 2018 at 23:0 Comment(1)
This helps. My project was private at first and in that state I pushed project to Github pages and I get 404 (ofc). After switching from gh-pages to master, and then back from master to gh-pages everything was fine and application start to work.Agonize
O
1

Your GitHub Pages is available at http://roine.github.io/p1 instead of http://roine.github.com/p1.

By the way, you can fix your project's description.

Ofay answered 20/5, 2022 at 8:57 Comment(0)
B
1

For Angular 16 I did:

npm i angular-cli-ghpages --save-dev

Then ran these 2 commands:

ng build --base-href "https://danday74.github.io/pods-prototype/"
npx angular-cli-ghpages --dir=dist/pods

Where:

danday74 is YOUR_USERNAME

pods-prototype is YOUR_GITHUB_REPO_NAME

dist/pods is YOUR_LOCAL_FOLDER where the build files are located

Then I could access my site (after a 10 sec delay) at:

https://danday74.github.io/pods-prototype

Betimes answered 1/8, 2023 at 1:57 Comment(0)
R
0

Go to settings section of your repository and choose master branch at the Source section and click save button after that refresh the page and you will be able to see the link of your page!.

Ragan answered 1/7, 2018 at 13:31 Comment(0)
U
0

I faced this problem (404) too and the root cause was my file was named INDEX.md. I was developing on Windows and my local Jekyll site worked (since Windows treats file names case insensitive by default). When pushed to Github, it didn't work. Once I renamed the INDEX.md to index.md, things worked well.

Undercharge answered 29/11, 2018 at 7:22 Comment(0)
D
0

Yet another scenario:

  • using an Organization Page (not a Project page) that has a repository named <orgname>.github.io
  • source documents as markup in master branch (asciidoc)
  • Travis CI pulling source doc files from master and pushing generated html files to gh-pages branch

The gh-pages branch is updated with the generated html pages. The GitHub Environment tab provides the link to the organization page. Clicking it results in a 404.

According to https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

User and Organization Pages that have this type of repository name are only published from the master branch

If I understand this correctly, GitHub Pages will not be published from the gh-pages branch if you are creating a User or Organization site rather than a Project site.

I renamed my repo to make it a Project site rather than Organization site and then the gh-pages branch was published as expected.

Discouragement answered 30/11, 2018 at 2:32 Comment(0)
H
0

I had same issue.. Very strange issue.. My HTML was with space after title

> <title>
> 
> <script>

Fixed, after removing space

> <title>
> <script>
Hansom answered 11/6, 2019 at 20:45 Comment(1)
This is probably just equivalent to causing a site rebuild as in https://mcmap.net/q/109167/-how-to-fix-http-404-on-github-pagesFolkways
S
0

Also, GitHub pages doesn't currently support Git LFS. As such, if you have images (or other binary assets) in GitHub pages committed with Git LFS, you'll get 404 not found for those files.

This will be quite common for documentation generated with Doxygen or similar tool.

The solution in this case is to simply not commit those files with Git LFS.

Shiism answered 20/8, 2019 at 15:41 Comment(0)
C
0

In my case my repository was private. Make repository public and go through all steps again.

Casque answered 17/9, 2019 at 19:7 Comment(0)
C
0

I also faced this issue, my pages getting 404. And then I added README.md on my repository, and the 404 was gone.

Confiscate answered 29/11, 2019 at 0:21 Comment(0)
T
0

I faced the same issue(404 on a newly set up GitHub pages website) yesterday. I tried many methods such as switching a new theme etc. But it seems that it still did not work on my case. I finally figured it out by switching the branch of GitHub pages website to another branch, click save. Wait for a while and switch it back again. Then the problem was suddenly solved.

Tice answered 15/9, 2020 at 2:42 Comment(0)
K
0

I had to rename my repo to a random name then rename it back to it's original name for it to work.

Seems like it might be a GH Pages bug.

Kephart answered 3/11, 2020 at 5:4 Comment(0)
C
0

I used umijs to package and deploy the project to github pages. The following operations helped me:

    1. In 13 line, add base: my-project-name;
    1. Redeploy gh-pages 🚀

A little guess: github pages need to be deployed to a non-root directory

Colangelo answered 6/12, 2021 at 8:35 Comment(0)
C
0

The following operations helped me:

webpack build:

Webpack output.publicPath

publicPath: './'

vite build:

vite base

base: './'
Colangelo answered 6/12, 2021 at 10:26 Comment(0)
C
0

For me the key was recognising that you could see error messages from the build process by going to the 'Actions' tab in your github repo. Clicking on the latest 'pages build and deployment' workflow revealed the error message that was preventing publication (simple bug in my _config.yml).

Colchis answered 21/3, 2022 at 16:30 Comment(0)
O
0

If you're using a framework like Angular, it could be that you have to set the base href path: https://mcmap.net/q/111153/-404-when-deploying-angular-6-app-to-github-pages

Using Angular CLI: ng build --baseHref="/users/"

Or more generally: <base href="/users/">

Also be sure that your image assets start with ./assets not /assets

Overstretch answered 8/8, 2022 at 23:25 Comment(0)
H
0

Today bumped into the same issue. In my case I was adding script as module, which resulted in HTTP 404 trying to fetch the file when deployed with Github Pages. I had to switch my bundler to make it work.

in the index.html file

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

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

Best,

Hertel answered 6/9, 2022 at 1:47 Comment(0)
G
0

In my case, I had first created a site without jekyll and had a .nojekyll file. I then changed my mind and created a site with jekyll (ignoring the non-empty repository warning and using --force). Then I had just forgotten to delete the .nojekyll file. Deleting it fixed the issue.

Giltzow answered 4/6, 2023 at 3:55 Comment(0)
S
0

if you are reviving an old website, go to actions -> pages-build-deployment -> pages build and deployment -> Re-run all jobs

Snowfield answered 14/6, 2023 at 21:10 Comment(0)
M
0

I was getting 404 issues because I was using "react-router-dom" to do my routing and it won't load the homepage even on "/". I didnt see anything on it in the troubleshooting docs https://docs.github.com/en/pages/getting-started-with-github-pages/troubleshooting-404-errors-for-github-pages-sites but you need to use hash routing instead

Mustard answered 25/1 at 3:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.