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?

Jonathan de M.
źródło
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.

Nycen
źródło
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.

Supuhstar
źródło
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

Chetabahana
źródło
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.

Jonathan de M.
źródło
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

Chris
źródło
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 .

Glina
źródło
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/

Ponadczasowy
źródło
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?

Rivalus
źródło
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.

JefClaes
źródło
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!

Iman Dastbelaraki
źródło
3

Dodaj następujący fragment na początku pliku index.html

<!DOCTYPE html>
Anirban Mukherjee
źródło
2

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

João Nunes
źródło
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
Ma AlTaiar
źródło
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"
      },
Joe Gasewicz
źródło
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.

strongwillow
źródło
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.

Ahmad Awais
źródł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ł.

dracodoc
źródło
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.

chrismarx
źródło
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.

CarpeDiemKopi
źródło
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.

030
źródło
1

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

wprowadź opis obrazu tutaj

Jöcker
źródło
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 !.

twenk11k
źródło
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.

Parag Deuskar
źródło
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.

Glenn
źródło
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>
Pastuh
źródło
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.

fałszywy
źródło
0

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

Santosh Kadam
źródło
0

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

Tri
źródło