Jak naprawić HTTP 404 na stronach Github?


166

Oto moje repozytorium GitHub w gh-pagesgałęzi. Wszystko wygląda dobrze, mam swoje index.htmlfoldery CSS, JS i zdjęcia.

Ale kiedy wchodzę na http://roine.github.com/p1 , otrzymuję HTTP 404 nie znaleziono.

Jakieś wyjaśnienie i rozwiązanie?


2
Zakładam, że postępowałeś zgodnie z dokumentacją ? Masz e-maila? - Z 404: „Wyślemy Ci e-mail, gdy Twoja strona zostanie utworzona. Może minąć do dziesięciu minut, zanim strona będzie dostępna”.
David Cain,

Wypróbowałem wygenerowaną stronę i działała dobrze. Następnie usunąłem gałąź gh-pages i odbudowałem ją z moim niestandardowym kodem HTML. Czekam od co najmniej godziny
Jonathan de M.

1
spróbuj z https. jeśli to działa, to po kilku chwilach będzie zahttp
Rohit Suthar

1
sztuczka https zadziałała dla mnie w inny sposób. Mam wszystko w porządku, a strona ustawień mówi, że witryna jest opublikowana, podała mi właściwy adres URL. Jednak ciągle daje 404. Zmieniłem adres URL na http, zadziałało, a potem https też. Wygląda na to, że należy najpierw uzyskać dostęp do witryny http, aby ją „aktywować”.
dracodoc

2
U mnie zaczęło działać po 10-20 minutach. To wymaga czasu. Więc bądź cierpliwy.
MechaCode

Odpowiedzi:


181

Miałem tylko jedno zatwierdzenie do wszystkich moich plików. Wcisnąłem pusty commit, odświeżyłem stronę i zadziałało.

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

Jeśli to nie zadziała, jak @Hendrikto wskazał w komentarzach, sprawdź stronę statusu Github i upewnij się, że GitHub Pages działa.


2
Używałem pakietu npm angular-cli-ghpages i dodałem spację do mojego pliku index.html, ponownie uruchomiłem polecenie „npx ngh”, co spowodowało, że otrzymałem nowe zatwierdzenie, uzyskując te same wspaniałe wyniki. Dzięki, to mnie zaskoczyło, a Twoja odpowiedź zainspirowała mnie do zrobienia tego.
Patrick Graham

jeśli nie chcesz używać wiersza poleceń, możesz po prostu edytować plik README.md bezpośrednio z interfejsu WWW.
Christophe Le Besnerais,

2
Może to być również problem z samym Githubem. Ta strona informuje o stanie Githuba. Miałem ten sam problem i żadna poprawka nie zadziałała. Strona statusu informowała o „obniżonej wydajności” i musiałem tylko poczekać, aż serwery znów będą w pełni funkcjonalne.
Hendrikto

Słuszna uwaga @Hendrikto, dodałem odniesienie do twojego komentarza w odpowiedzi.
Nycen

77

W moim przypadku miałem foldery, których nazwy zaczynały się od _(jak _cssi _js), które GH Pages ignoruje zgodnie z regułami przetwarzania Jekyll. Jeśli nie używasz Jekyll, obejściem jest umieszczenie pliku o nazwie .nojekyllw katalogu głównym.


4
.nojekyll jest koniecznością, jeśli nie używasz Jekyll, dokumenty dostępne tutaj: github.com/blog/572-bypassing-jekyll-on-github-pages
Claudiu Constantin

2
Dziękuję za to, wysłałem e-mail do github i poprosiłem ich o zaktualizowanie przewodnika na pages.github.com (który nie wspomina o pliku .nojekyll)
sunyata

1
Dzięki! Było to wymagane dla aplikacji Vue, szkoda, że ​​nie jest wspomniane w przewodniku wdrażania vue-cli.
Ondřej Ševčík

to naprawiło to dla mnie. Moja witryna użytkownika pierwotnie działała bez niego, ale przestała działać. Możesz po prostu dodać plik online i tam również go zatwierdzić. Zrobiłem to, odświeżyłem i od razu zadziałało.
bot19

@Supuhstar thanks brachu. ratujesz mi życie)
voronovam

73

Zrobiłem wszystkie sztuczki tutaj na My Fork, aby naprawić stronę 404 na Github Page, ale utrzymywało to 404 .

W końcu okazało się, że moja przeglądarka prawie nie przechowuje 10-minutowej pamięci podręcznej przed uruchomieniem w Internecie.

Po prostu dodaj /index.htmlna końcu adresu URL, a następnie pojawi się i rozwiązał sprawę.

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


1
To zadziałało dla mnie. Stworzyłem witrynę zgodnie z instrukcjami na głównej stronie GitHub Pages, więc trochę rozczarowuje, że nie działa po wyjęciu z pudełka.
CGK

1
Dzięki! Miałem ten sam problem. To dziwne, że musimy dodać /index.html.
Raja Rao,

1
Wyczyściłem miękką pamięć podręczną, ale nie zadziałało, ale dodanie /index.html działało. Dzięki
Prince Tegaton,

1
U mnie też działało, ale nigdy wcześniej mi się to nie przydarzyło, obecnie mam wiele stron działających zarówno pod nazwą użytkownika.github.io, jak i nazwa_użytkownika.github.io/ < additional - page > i nigdy nie musiałem dołączać pliku index.html
Sanchit Batra

musiałem otworzyć konsolę programisty i wymusić index.html w adresie URL. Dzięki o /
heavyyrick

50

Cztery miesiące temu skontaktowałem się z pomocą techniczną i powiedzieli mi, że to problem po ich stronie, tymczasowo go naprawili (dla bieżącego zatwierdzenia).

Dzisiaj spróbowałem ponownie

  1. Usunąłem gałąź gh-pages na githubie

    git push origin --delete gh-pages

  2. Usunąłem gałąź gh-pages na lokalnym

    git branch -D gh-pages

  3. Ponownie zainicjowałem git

    git init

  4. Odtworzyłem oddział lokalnie

    git branch gh-pages

  5. Zepchnąłem gałąź stron gh do github

    git push origin gh-pages

Działa dobrze, w końcu mogę zaktualizować moje pliki na stronie.


31
Najwyraźniej nie musisz nawet usuwać lokalnego oddziału. Po prostu git checkout gh-pages ; git push origin --delete gh-pages ; git push origini gotowe.
ciekawe,

4
Usunięcie zdalnego oddziału i ponowne wypchnięcie mojego rozwiązało problem. Strona była widoczna po minucie.
Kulbi

Myślę, że to ma być oddział „sierocy”
przyszłego

Po prostu musiałem usunąć gałąź źródłową („gh-pages”) i wszystko powtórzyć. Pracował dla mnie!
wle8300

34

Jeśli jeszcze tego nie zrobiłeś, wybierz motyw Jekyll na karcie ustawień GitHub Pages. Najwyraźniej jest to wymagane, nawet jeśli nie używasz Jekyll w swojej witrynie Pages.

Zrzut ekranu ustawień GitHub


8
Otrzymałem błąd 404 Not Found, a po wypróbowaniu wszystkich osiemnastu innych rozwiązań sugerowanych w odpowiedziach tutaj udokumentowałem swoje próby w zduplikowanym pytaniu: Bardzo prosty kod HTML powodujący błąd 404 Not Found na stronach GitHub . 19. odpowiedź Chrisa była tą, która naprawiła to za mnie. GitHub Pages to świetna usługa, szkoda, że ​​dokumentacja jest tak uboga.
dumbledad

3
Samo wybranie schematu nadal nie wystarczy, musisz także utworzyć nowy commit w gh-pagesgałęzi, aby później uruchomić aktualizację!
sschuberth

20

Miałem ten sam problem po rozwidleniu repozytorium z gh-pagesoddziałem. Udało mi się to naprawić, po prostu wrzucając nowe zatwierdzenie (po prostu spację index.html) do gh-pagesgałęzi mojego fork .


Umieściłem spację w „index.html”, zatwierdziłem i odrzuciłem zmiany. Nic się nie stało. Usunięto białe znaki z nazwy pliku, zatwierdzono i ponownie wprowadzono zmiany i zadziałało! Dzięki.
Nahiyan

Zwróć również uwagę, że strony github używają małego okna buforowania (10 minut w momencie pisania:) Cache-Control:max-age=600. więc być może będziesz musiał poczekać, aż okno pamięci podręcznej wygaśnie lub wymusić odświeżenie przeglądarki.
Clay

1
Po co bawić się spacjami? Po prostu wciśnij pusty commit za pomocą --allow-empty.
Hendrikto,

18

W moim przypadku 8 sierpnia 2017 r

  1. jeśli Twoja strona użytkownika to https://github.com/mgravell , nazwa repozytorium musi brzmieć mgravell.github.io
  2. w katalogu głównym utwórz plik index.html

  3. w katalogu głównym utwórz folder docs, utwórz plik CNAMEw docs(uwaga: BEZ rozszerzenia, takiego jak .txt, upewnij się, że system plików wyświetla rozszerzenie)

  4. gh-pagesgałąź jest opcjonalna, masterwystarczy gałąź

więcej : sprawdź oficjalne dokumenty tutaj: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/


1
Tak! Dodanie pustego folderu dokumentów i pustego pliku CNAME (bez rozszerzenia) załatwiło sprawę !!
Jose A

Tutaj też brakuje CNAME :)
Frexuz

Czy plik CNAME powinien być pusty? Jeśli nie, co powinno w nim być?
dumbledad

@dumbledad pusty plik będzie w porządku
Timeless

15

Poczekaj około dziesięciu minut do jednej godziny. Jeśli nadal nie działa, skontaktuj się z github. Zwykle jest to ich koniec. Ale jeśli się spieszysz, możesz spróbować otworzyć, dodając „?” znak zapytania na końcu adresu URL. Wymusza zapytanie w celu wyszukania zasobu. Lubię to:

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


14

Moje strony również wyświetlały się 404 '. Skontaktował się z pomocą techniczną i wskazał, że w adresie URL rozróżniana jest wielkość liter; rozwiązał mój problem.


2
Próbowałem już obu, z kapitałem i bez, przed skontaktowaniem się z obsługą
Jonathan de M.

3

Jeśli jesteś pewien, że twoja struktura jest poprawna, po prostu wypchnij pusty zatwierdzenie lub zaktualizuj plik index.html o trochę miejsca, to działa!



2

w moim przypadku musiałem przejść do ustawień projektu i włączyć strony github. Domyślnie jest wyłączone



2

W moim przypadku wszystkie powyższe sugestie były poprawne. Większość stron działała, z wyjątkiem kilku, które zwracały błąd 404, mimo że są tam pliki przecen i wydawały się poprawne. Oto, co naprawiło to dla mnie na tych stronach:

  • Na jednej stronie było kilka znaków specjalnych, które nie są częścią UTF-8i myślę, że dlatego strony GitHub nie były w stanie ich renderować. Aktualizacja / usunięcie tych znaków i wysłanie nowego zatwierdzenia naprawiło to.
  • Na innej stronie znalazłem apostrofy 'otaczające tytuł, usunąłem je i zawartość strony zaczęła się wyświetlać dobrze

2

Miałem dokładnie ten problem z typedocami. Plik README.md działał, ale żaden z faktycznych dokumentów wygenerowanych przez moje ciągi dokumentów nie był wyświetlany, właśnie dostałem ekran 404 Github Pages.

Aby to naprawić, po prostu umieść pusty plik w katalogu / docs (lub gdziekolwiek generujesz swoje dokumenty) i nazwij go .nojekyll

Aby potwierdzić, struktura plików powinna teraz wyglądać następująco:

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

Przekaż to do zdalnego repozytorium Github, a Twoje linki itp. Powinny teraz działać.

Upewnij się również, że wybrałeś w ustawieniach Github:

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

W zależności od struktury dokumentacji prawdopodobnie będziesz musiał odtworzyć ten plik za każdym razem, gdy aktualizujesz swoje dokumenty, jest to przykład użycia typedocs i tworzenia pliku .nojekyll za każdym razem w pliku package.json:

# package.json

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

1

Związałem moją domenę, zanim pojawił się ten problem. Zatwierdziłem i pchnąłem strony gh oddziału i to rozwiązało mój problem. Nowe zatwierdzenia zmuszają Jekylla do przebudowy Twoich stron.


1

W moim przypadku adres URL był dość długi. Więc myślę, że jest granica. Umieściłem to w mojej niestandardowej subdomenie i zadziałało.


1

Jeśli widziałeś 404, nawet wszystko wygląda dobrze, spróbuj przełączyć https / http.

Oryginalne pytanie ma nieprawidłowy adres URL, zwykle można sprawdzić ustawienia repozytorium i znaleźć prawidłowy adres URL dla wygenerowanej witryny.

Jednak mam wszystko skonfigurowane poprawnie, a strona ustawień mówi, że jest opublikowana, to nadal widziałem 404.

Dzięki za komentarz @Rohit Suthar (chociaż ten komentarz miał używać https), zmieniłem adres URL na http i zadziałało, a następnie https też działał.


1

W prywatnym repozytorium, kiedy po raz pierwszy dodałem gałąź gh-pages i wypchnąłem ją na github, ustawienia stron github automatycznie zmieniły się, aby wskazać, że gałąź gh-pages zostanie opublikowana, ale nie ma zielonego ani niebieskiego paska z github.io url i nie ma niestandardowych opcji domeny.

Dopiero gdy przełączyłem źródło na główne i szybko przełączyłem źródło z powrotem na strony gh, faktycznie zaktualizowałem je zielonym paskiem, który zawiera opublikowany adres URL.


1
To pomaga. Mój projekt był na początku prywatny iw tym stanie wysłałem projekt na strony Github i otrzymałem 404 (ofc). Po przełączeniu się z gh-pagesna master, a potem z powrotem z masterdo gh-pageswszystko było w porządku i aplikacja zaczęła działać.
Zrna

1

Inny wariant tego błędu:

Założyłem moją pierwszą stronę GitHub po tutorialu ale dał plik readme.mda - z mojego punktu widzenia - bardziej znaczącą nazwę: welcome.md.

To był fatalny błąd:

Użyjemy Twojego pliku README jako indeksu witryny, jeśli nie masz index.md(lub index.html), podobnie jak w przypadku przeglądania repozytorium na GitHub.

od publikowania za pomocą GitHub Pages, teraz tak proste, jak 1, 2, 3

Byłem wtedy w stanie uzyskać dostęp do mojej strony internetowej za pomocą published atłącza określonego pod Repository/ Settings/, GitHub Pagespo którym nastąpił welcome.htmllub krótszy welcome.


1

Z jakiegoś powodu wdrażanie stron GitHub przestało działać dzisiaj (2020-maj-05). Wcześniej nie miałem żadnych html, tylko pliki md. Próbowałem utworzyć plik index.html i natychmiast opublikowałem stronę. Po usunięciu index.html publikacja nadal działa.


1

W moim przypadku w reakcji konieczne było wybranie gałęzi gh-pages:

wprowadź opis obrazu tutaj


0

Przejdź do sekcji ustawień swojego repozytorium i wybierz gałąź główną w sekcji Źródło i kliknij przycisk Zapisz, po czym odśwież stronę, a będziesz mógł zobaczyć link do swojej strony !.


0

Napotkałem ten problem (404), a główną przyczyną była nazwa mojego pliku INDEX.md. Programowałem w systemie Windows i moja lokalna witryna Jekyll działała (ponieważ system Windows domyślnie traktuje nazwy plików bez rozróżniania wielkości liter). Po przeniesieniu na Github nie zadziałało. Po zmianie nazwy na INDEX.mdto index.mdwszystko działało dobrze.


0

Jeszcze inny scenariusz:

  • używając strony organizacji (nie strony projektu), która ma repozytorium o nazwie <orgname>.github.io
  • dokumenty źródłowe jako znaczniki w mastergałęzi (asciidoc)
  • Travis CI pobiera źródłowe pliki doc z masteri przesyła wygenerowane pliki html do gh-pagesgałęzi

gh-pagesOddział jest na bieżąco z generowanych stron HTML. Karta GitHub Environmentzawiera łącze do strony organizacji. Kliknięcie go powoduje wyświetlenie pliku 404.

Według https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

Strony użytkowników i organizacji, które mają tego typu nazwę repozytorium, są publikowane tylko z masteroddziału

Jeśli dobrze to rozumiem, strony GitHub nie będą publikowane z gh-pagesoddziału, jeśli tworzysz witrynę Userlub Organizationzamiast Projectwitryny.

Zmieniłem nazwę mojego repozytorium, aby było to Projectraczej Organizationwitryna niż witryna, a następnie gh-pagesgałąź została opublikowana zgodnie z oczekiwaniami.


0

Miałem ten sam problem ... Bardzo dziwny problem ... Mój kod HTML zawierał spację po tytule

> <title>
> 
> <script>

Naprawiono, po usunięciu spacji

> <title>
> <script>

0

Ponadto strony GitHub obecnie nie obsługują Git LFS . W związku z tym, jeśli masz obrazy (lub inne zasoby binarne) na stronach GitHub zatwierdzonych za pomocą Git LFS, otrzymasz 404 nie znalezione dla tych plików.

Będzie to dość powszechne w przypadku dokumentacji generowanej za pomocą Doxygen lub podobnego narzędzia.

Rozwiązaniem w tym przypadku jest po prostu nie zatwierdzanie tych plików za pomocą Git LFS.


0

W moim przypadku repozytorium było prywatne. Udostępnij repozytorium publicznie i ponownie wykonaj wszystkie kroki.


0

Również napotkałem ten problem, moje strony otrzymywały 404. A potem dodałem README.md do mojego repozytorium i 404 zniknął.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.